JDBC增删改查
/*
db.properties的配置
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/day14
username=root
password=seeker
*/ package cn.itcast.demo; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; import org.junit.Test; import cn.itcast.jdbcutils.JdbcUtils; //使用jdbc对数据库进行增删改查
//导包的时候不要导具体的驱动包
public class Demo4 { Connection conn=null;
Statement st=null;
ResultSet rs=null; @Test
public void insert(){
try{
Connection conn = JdbcUtils.getConnection();
st=conn.createStatement();
String sql="insert into users(id,name,password,email,birthday) values(4,'xxx','123','xx@sina.com','1980-09-09')";
int num = st.executeUpdate(sql);//返回一个整型数据,影响了数据几行
if(num>0){
System.out.println("插入成功");
}
}catch (Exception e){ }finally{
JdbcUtils.release(conn, st, rs);
}
}
@Test
public void delete(){ try{
Connection conn = JdbcUtils.getConnection();
st=conn.createStatement();
String sql="delete from users where id=4";
int num = st.executeUpdate(sql);//返回一个整型数据,影响了数据几行
if(num>0){
System.out.println("删除成功");
}
}catch (Exception e){ }finally{
JdbcUtils.release(conn, st, rs);
}
}
@Test
public void update(){ try{
Connection conn = JdbcUtils.getConnection();
st=conn.createStatement();
String sql="update users set name='wang',email='wu@.sina.com' where id=3";
int num = st.executeUpdate(sql);//返回一个整型数据,影响了数据几行
if(num>0){
System.out.println("更新成功");
}
}catch (Exception e){ }finally{
JdbcUtils.release(conn, st, rs);
} }
@Test
public void find(){ try{
Connection conn = JdbcUtils.getConnection();
st=conn.createStatement();
String sql="select id,name,password,email,birthday from users where id=1";
rs = st.executeQuery(sql);//返回一个整型数据,影响了数据几行
if(rs.next()){
System.out.println(rs.getString("name"));
} }catch (Exception e){ }finally{
JdbcUtils.release(conn, st, rs);
}
}
} /*JdbcUtils
package cn.itcast.jdbcutils; import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; public class JdbcUtils { private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;
static{
try {
InputStream in=JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties prop = new Properties();
prop.load(in);
driver=prop.getProperty("driver");
url=prop.getProperty("url");
username=prop.getProperty("username");
password=prop.getProperty("password"); Class.forName(driver); } catch (IOException e) {
throw new ExceptionInInitializerError(e);
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
} public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url,username,password);
} public static void release(Connection conn,Statement st,ResultSet rs){
if(rs!=null){
try{
rs.close();
}catch (Exception e){
e.printStackTrace();//异常没有抛给java虚拟机,因此不会终止程序的执行,
} }
if(st!=null){
try{
st.close(); }catch (Exception e){
e.printStackTrace();//异常没有抛给java虚拟机,因此不会终止程序的执行,
} }
if(conn!=null){
try{
conn.close();
}catch (Exception e){
e.printStackTrace();//异常没有抛给java虚拟机,因此不会终止程序的执行,
} } }
}
*/
JDBC增删改查的更多相关文章
- JDBC增删改查,PreparedStatement和Statement的区别
此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...
- JDBC增删改查和查唯一的完整代码
第一部分代码(实体类) package com.wf.entity; public class Hehe{ private int hehe_id; private String hehe_name; ...
- jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决
最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...
- jdbc增删改查进行封装
jdbc封装 1 dao (代码分层) com.aaa.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据 com.aaa.servlet 存放servle ...
- JAVA JDBC 增删改查简单例子
1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...
- JDBC 增删改查代码 过滤查询语句
package test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; i ...
- JDBC增删改查简单测试
首先编写一个entity以便与数据库表文件相对应 lyTable.java public class LyTable implements java.io.Serializable { private ...
- 商城项目整理(三)JDBC增删改查
商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: create table TEST.GOODS_TABLE ( gid NUMBER not null ...
- Java操作数据库之JDBC增删改查
1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
随机推荐
- 【CSS3】---元素隐藏(是否占据空间、是否可点击)
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击. { display: none; /* 不占据空间,无法点击 */ } ...
- 理解C#系列 / C#语言的特性
C#语言的特性 大多数语句都已(;)结尾 用({})定义语句块 单行注释(//),多行注释(/*......*/)智能注释(///) 区分大小写 用namespace名称空间对类进行分类 在C#中的所 ...
- 转: 理解Python的With语句
Python’s with statement provides a very convenient way of dealing with the situation where you have ...
- WCF之事务
2阶段提交协议. 事务先提交给协调者,由协调者分发给各个RM,在一段规定的时间后.由RM询问各个RM是否提交还是终止操作.RM根据自己的状态来决定提交/终止.协调者根据RM的结果,决定操作的提交/终止 ...
- javaScript中的数组迭代方法
ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数 和 (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...
- 一个线程间的通讯小程序__(Java_Thread_Inout.Output)
//多线程通讯 //多个线程处理同一资源,但是任务不同 //等待唤醒方法: //wait():将线程变成为冻结状态,线程会被存储在线程池中; //notify():唤醒线程中的一个线程(任意的) // ...
- DataGrid1
2013-09-2512:26:31 1.DataGrid页面 <asp:DataGrid ID="msgInfo1" PageSize="8" Auto ...
- C指针赋值
Node* p = A; Node* f = B; Node* t; t = p; t = f 本人试图让p指向B,但这样操作是不行的.如下图:只是改变了t的指向,p并没有变
- c++11:copy_n
copy_n: Copies exactly count values from the range beginning at first to the range beginning at resu ...
- c++11:iota
iota: Fills the range [first, last) with sequentially(循环的) increasing values, starting with value an ...