JDBC连接数据库步骤一.加载驱动
导入jar包
Class.forName("driver")
作用:不只是创建一个类的Class对象,它加载了整相关程序的类。
JDBC连接数据库步骤二.获取连接对象
Connectioncon=DriverManager.getConnection(url,user,pwd)
url:告诉数据库的位置
JDBC连接数据库步骤三.创建语句对象,执行SQL
增删改
返回影响所有行
非查询
Statement:
Statementst=con.CreateStatement()
inti=st.executeUpdate(sql)
- 1.
- 2.
- 3.
下标从一开始
inti=st.executeUpdate(sql);
PreparedStatement:
PreparedStatementps=con.PreparedStatement("sql语句")
ps.setXXX(n,值)
- 1.
- 2.
- 3.
- 4.
对第n个?进行赋值
区别
用st的好处
在动态组装SQL时,指动态产生要执行SQL语句
用pst的好处
更好维护
避免SQL注入
效率更高
扩展
用JDBC的批处理(BATCH)可以提高效率
用ResultSetMetadata可以获取列的信息(个数,名称)
查询
resultsetrs=pst.executePuery()
while(rs.net())
Stringstr=rs.getString(列的位置,列的名称)
- 1.
- 2.
- 3.
JDBC连接数据库步骤四.关闭
顺序
ifrs!=nullrs.close();
pst.close();
con.close();
- 1.
- 2.
- 3.
具体实例:
privatefinalStringURL="jdbc:mysql://localhost:3306/db";
privatefinalStringFINDALL="select*fromdept";
privateConnectioncon;
privatePreparedStatementps;
privateResultSetrs;
//查询
publicListfindAll(){
Listlist=newArrayList();
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(URL,"root","123");
ps=con.prepareStatement(FINDALL);
rs=ps.executeQuery();
while(rs.next()){
DeptDTOdto=newDeptDTO();
dto.setDeptId(rs.getInt("deptId"));
dto.setName(rs.getString("depName"));
dto.setPhone(rs.getString("phone"));
System.out.println(dto.getDeptId()+""+dto.getName()+""+dto.getPhone());
list.add(dto);
}
con.close();
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnlist;
}
//添加,添加中关闭连接的方法相比查询中的关闭方法更好一些
publicvoidadd(DeptDTOdto){
try{
Class.forName("com.jdbc.mysql.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","123");
ps=con.prepareStatement("insertintodept(deptId,depName,phone)values(?,?,?)");
ps.setInt(1,dto.getDeptId());
ps.setString(2,dto.getName());
ps.setString(3,dto.getPhone());
ps.execute();
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
finally{
try{
if(con!=null&&!con.isClosed()){
con.close();
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
le.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
atjava.sql.DriverManager.getConnection(UnknownSource)
atjava.sql.DriverManager.getConnection(UnknownSource)
attool.DbConnect.getConnect(DbConnect.java:45)
attool.DbConnect.main(DbConnect.java:54)
- 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.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
【编辑推荐】