一、建立静态的数据库配置文件:

config.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/database01
user=root
password=

二、创建工具类 :

JDBCUtils.java

package com.dzq.util;

import java.io.FileReader;
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 Properties prop=null; private JDBCUtils(){ } /**
* 静态代码块,加载数据库配置文件
*/
static{
try{
prop=new Properties();
prop.load(new FileReader(JDBCUtils.class.getClassLoader().getResource("config.properties").getPath()));
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException();
}
} /**
* 获取连接
*/
public static Connection getConn() throws Exception{ Class.forName(prop.getProperty("driver"));
return DriverManager.getConnection(prop.getProperty("url"), prop.getProperty("user"), prop.getProperty("password"));
} /**
* 关闭连接
*/
public static void close(ResultSet rs,Statement stat,Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs=null;
}
}
if(stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
stat=null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn=null;
}
}
}
}

三、查询、增删改测试代码:

JDBCDemo2.java

package com.dzq.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; import org.junit.Test; import com.dzq.util.JDBCUtils; public class JDBCDemo2 { /**
* 该类中方法均以JUnit测试的形式给出
*/ @Test
public void delete(){
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try{
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
stat.executeUpdate("delete from user where name='zhaoliu'");
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtils.close(rs, stat, conn);
}
} @Test
public void find(){
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try{
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
rs=stat.executeQuery("select * from user where name='zhaoliu'");
while(rs.next()){
String name=rs.getString("name");
String password=rs.getString("password");
String email=rs.getString("email");
System.out.println("name:"+name+"pwd:"+password+"email:"+email);
}
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtils.close(rs, stat, conn);
}
}
@Test
public void update(){
Connection conn=null;
Statement stat=null;
try {
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
stat.executeUpdate("update user set password=999 where name='zhangsan'");
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCUtils.close(null, stat, conn);
}
}
@Test
public void add(){
Connection conn=null;
Statement stat=null;
//1.注册数据库驱动
try{ //2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
//4.执行sql语句
int count=stat.executeUpdate("insert into user values (null,'zhangsan','123456','zhaoliu@qq.com','1999-09-09')");
//5.处理结果
if(count>0){
System.out.println("添加数据成功,影响行数为"+count);
}else{
System.out.println("执行失败");
}
}catch(Exception e){
e.printStackTrace();
}finally{
//6.关闭资源
JDBCUtils.close(null, stat, conn);
}
}
}

最新文章

  1. 初步认识Hive
  2. 3分钟wamp安装redis扩展超级简单
  3. gvim配置
  4. python logging 模块
  5. Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException
  6. yii中使用active record进行关联显示
  7. URAL 1036(dp+高精度)
  8. 从json_encode过来的的字符串被返回到html页面时的解析
  9. 6.使用桌面版AI伴侣或手机版AI伴侣实时预览编程效果
  10. 主成分分析PCA(Principal Component Analysis)在sklearn中的应用及部分源码分析
  11. Luogu 1437 [HNOI2004]敲砖块 (动态规划)
  12. JD_M案例知识点(移动端)
  13. 架构:Eventually Consistent - Revisited
  14. Git:上传GitHub项目操作步骤
  15. iOS出现 _OBJC_CLASS_$_ZSHomeServiceDataElementGroupLargeImage", referenced from:以及linker command failed with exit code 1 (use -v to see invocation)的错误分析
  16. 用EA生成实体层代码
  17. spring-boot、spring-data-jpa、hibernate整合
  18. android 侧滑菜单
  19. 【bzoj2115】[Wc2011] Xor
  20. BZOJ day8

热门文章

  1. SAE网站搭建(2)
  2. asp.net的运行内幕
  3. 初学redux笔记,及一个最简单的redux实例
  4. POJ-3207 Ikki's Story IV - Panda's Trick 2sat
  5. leptonica使用问题
  6. Mozilla NPAPI开发示例之一(VS2012 + Win7(64位))
  7. 织梦/dedecms 当文章转载时不需要设置图片水印的设置,取消’图片是否加水印‘的复选框,并且修改如下文件即可生效
  8. WPF-21:WPF实现仿安卓的图案密码键盘(改进)
  9. S2SH商用后台权限系统第一讲
  10. CentOS忘记root密码的解决方法