Java基础102 完整的JDBC连接MySQL数据库和Oracle数据库的方法

本文知识点(目录):

1、jdbc连接MySQL数据库
    2、jdbc连接Oracle数据库
    3、附录【本文jdbc连接MySQL或Oracle数据库的全部代码(合起来,做对比)】



1、JDBC连接MySQL数据库

1.1、我用到的jar包

1.2、实例演示

MySQL建表语句

1 -- MySQL建表语句
2 create table user(
3   id number(5) primary key auto_increment,
4   account varchar(20) not null,
5   password varchar(32) not null
6 );

db.properties 配置文件

1 jdbcDriver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/school
3 userName=root
4 password=123456

DBUtils 工具类(封装jdbc公共部分的代码)

  1 package com.shore.util;
  2
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.sql.Connection;
  6 import java.sql.DriverManager;
  7 import java.sql.PreparedStatement;
  8 import java.sql.ResultSet;
  9 import java.sql.SQLException;
 10 import java.sql.Statement;
 11 import java.util.Properties;
 12
 13 /**
 14  * @author DSHORE/2020-1-15
 15  * 连接数据库--->工具类
 16  */
 17 public class DBUtils {
 18
 19     private DBUtils() {
 20     }
 21
 22     private static String jdbcDriver = "";
 23     private static String url = "";
 24     private static String userName = "";
 25     private static String password = "";
 26
 27     static {
 28         Properties properties = new Properties();
 29         try {
 30             //读取配置文件(MySQL数据库)
 31             InputStream inputStream = DBUtils.class.getResourceAsStream("/db.properties");
 32             properties.load(inputStream); //加载配置文件
 33             inputStream.close();//关闭输入流
 34
 35             //获取到对应参数的值
 36             jdbcDriver = properties.getProperty("jdbcDriver");
 37             url = properties.getProperty("url");
 38             userName = properties.getProperty("userName");
 39             password = properties.getProperty("password");
 40         } catch (IOException e1) {
 41             e1.printStackTrace();
 42         } finally {
 43             try {
 44                 Class.forName(jdbcDriver);
 45             } catch (ClassNotFoundException e) {
 46                 throw new ExceptionInInitializerError(e);
 47             }
 48         }
 49     }
 50
 51     //连接数据库
 52     public static Connection getConnection() throws SQLException {
 53         Connection connection = null;
 54         try {
 55             connection = DriverManager.getConnection(url, userName, password);
 56         } catch (Exception e) {
 57             System.out.println(e.getMessage());//如果出现异常,则 把异常信息打印到控台上
 58         }
 59         return connection;
 60     }
 61
 62     // 释放资源。   顺序:resultSet、statement、connection
 63     public static void free(ResultSet resultSet, Statement statement, Connection connection) {
 64         if (resultSet != null) {
 65             try {
 66                 resultSet.close();
 67             } catch (SQLException e) {
 68                 e.printStackTrace();
 69             } finally {
 70                 if (statement != null) {
 71                     try {
 72                         statement.close();
 73                     } catch (SQLException e) {
 74                         e.printStackTrace();
 75                     } finally {
 76                         if (connection != null) {
 77                             try {
 78                                 connection.close();
 79                             } catch (SQLException e) {
 80                                 e.printStackTrace();
 81                             }
 82                         }
 83                     }
 84                 }
 85             }
 86         }
 87     }
 88
 89     // 释放资源。  顺序:resultSet、preparedStatement、connection
 90     public static void free(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection) {
 91         if (resultSet != null) {
 92             try {
 93                 resultSet.close();
 94             } catch (SQLException e) {
 95                 e.printStackTrace();
 96             } finally {
 97                 if (preparedStatement != null) {
 98                     try {
 99                         preparedStatement.close();
100                     } catch (SQLException e) {
101                         e.printStackTrace();
102                     } finally {
103                         if (connection != null) {
104                             try {
105                                 connection.close();
106                             } catch (SQLException e) {
107                                 e.printStackTrace();
108                             }
109                         }
110                     }
111                 }
112             }
113         }
114     }
115 }

User 实体类

 1 package com.shore.entity;
 2
 3 /**
 4  * @author DSHORE/2020-1-15
 5  *
 6  */
 7 public class User {
 8     private Integer id;
 9     private String account;
10     private String password;
11
12     public Integer getId() {
13         return id;
14     }
15
16     public void setId(Integer id) {
17         this.id = id;
18     }
19
20     public String getAccount() {
21         return account;
22     }
23
24     public void setAccount(String account) {
25         this.account = account;
26     }
27
28     public String getPassword() {
29         return password;
30     }
31
32     public void setPassword(String password) {
33         this.password = password;
34     }
35 }

dao层

1 //接口
2 public interface IUserDao {
3     public int add(User user); //新增
4     public User findById(Integer id); //根据id查询
5 }
 1 package com.shore.dao.impl;
 2
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.Statement;
 7
 8 import com.shore.dao.IUserDao;
 9 import com.shore.entity.User;
10 import com.shore.util.DBUtils;
11
12 /**
13  * @author DSHORE/2020-1-15
14  *  接口的实现类
15  */
16 public class UserDao implements IUserDao {
17     //全局变量
18     Connection connection = null;
19     Statement statement = null;
20     PreparedStatement preparedStatement = null;
21     ResultSet resultSet = null;
22
23     @Override //新增
24     public int add(User user) {
25         int result = 0;
26         String sql = "";
27         try {
28             connection = DBUtils.getConnection();
29             //MySQL数据库
30             sql = "insert into user(account,password) values(‘"+user.getAccount()+"‘,‘"+user.getPassword()+"‘)";
31             statement = connection.createStatement();
32             result = statement.executeUpdate(sql);//执行添加操作
33         } catch (Exception e) {
34             e.printStackTrace();
35         } finally{
36             DBUtils.free(null, statement, connection);
37         }
38         return result;
39     }
40
41     @Override //根据id查询
42     public User findById(Integer id) {
43         User user = null;
44         String sql = "";
45         try {
46             connection = DBUtils.getConnection();//连接数据库
47             //MySQL
48             sql = "select * from user where id = ?";
49             preparedStatement = connection.prepareStatement(sql);//编译/检查sql语句是否符合规范等等
50             preparedStatement.setInt(1, id);
51             resultSet = preparedStatement.executeQuery();//执行查询操作
52             if(resultSet.first()){
53                 user = new User();
54                 user.setId(id);
55                 user.setAccount(resultSet.getString("account"));
56                 user.setPassword(resultSet.getString("password"));
57             }
58         } catch (Exception e) {
59             e.fillInStackTrace();
60         } finally {
61             DBUtils.free(resultSet, preparedStatement, connection);
62         }
63         return user;
64     }
65 }

UserTest 测试类

 1 package com.shore.test;
 2
 3 import org.junit.Test;
 4
 5 import com.shore.dao.IUserDao;
 6 import com.shore.dao.impl.UserDao;
 7 import com.shore.entity.User;
 8
 9 /**
10  * @author DSHORE/2020-1-15
11  *
12  */
13 public class UserTest {
14     @Test
15     public void addTest() {
16         IUserDao userDao = new UserDao();
17         User user = new User();
18         user.setAccount("lisi");
19         user.setPassword("123456");
20         userDao.add(user); //添加成功
21     }
22
23     @Test
24     public void findByIdTest() {
25         IUserDao userDao = new UserDao();
26         User user = userDao.findById(2);
27         System.out.println(user); //返回值: [email protected]
28         System.out.println(user.getAccount()+" : "+user.getPassword()); //返回值: 张三 : 123456
29     }
30 }

2、JDBC连接Oracle数据库

2.1、我用到的jar包

2.2、实例演示

Oracle 建表语句

 1 -- Oracle建表语句
 2 create table users( -- user是Oracle关键字,不能用user
 3   id number(5) primary key,
 4   account varchar2(20) not null unique,
 5   password varchar2(32) not null
 6 );
 7
 8 -- 创建序列
 9 create sequence users_seq  -- 序列名称:users_seq
10 minvalue 10  --最小值(建议稍微设置大一些,不建议设置成1或2或3等等,否则很容易出现这个错误  ORA-00001:违反唯一约束条件)
11 start with 1   --从1开始计数,数值可变
12 increment by 1  --每次加1,数值可变
13 nocycle  --一直累加,不循环;cycle:达到最大值后,将从头开始累加。 (maxvalue 999 -- 最大值)
14 nocache;  --不建缓冲区。

这里我没有创建触发器,dao层插入数据时,id这项 必须要写上,比如:看红色代码处

insert into users(id,account,password) values(users_seq.nextval,‘张三‘,‘123456‘);

创建触发器(主要看Oracle部分,第3小点是创建触发器的步骤,第4小点体现了触发器的作用)详情:https://www.cnblogs.com/dshore123/p/8267240.html

odb.properties 配置文件

1 jdbcDriver=oracle.jdbc.driver.OracleDriver
2 url=jdbc:oracle:thin:@localhost:1521:shoreid
3 userName=zhangsan
4 password=123456

DBUtils 工具类(封装jdbc公共部分的代码)

  1 package com.shore.util;
  2
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.sql.Connection;
  6 import java.sql.DriverManager;
  7 import java.sql.PreparedStatement;
  8 import java.sql.ResultSet;
  9 import java.sql.SQLException;
 10 import java.sql.Statement;
 11 import java.util.Properties;
 12
 13 /**
 14  * @author DSHORE/2020-1-15
 15  * 连接数据库--->工具类
 16  */
 17 public class DBUtils {
 18
 19     private DBUtils() {
 20     }
 21
 22     private static String jdbcDriver = "";
 23     private static String url = "";
 24     private static String userName = "";
 25     private static String password = "";
 26
 27     static {
 28         Properties properties = new Properties();
 29         try {
 30             //读取配置文件(Oracle数据库)
 31             InputStream inputStream = DBUtils.class.getResourceAsStream("/odb.properties");
 32             properties.load(inputStream); //加载配置文件
 33             inputStream.close();//关闭输入流
 34
 35             //获取到对应参数的值
 36             jdbcDriver = properties.getProperty("jdbcDriver");
 37             url = properties.getProperty("url");
 38             userName = properties.getProperty("userName");
 39             password = properties.getProperty("password");
 40         } catch (IOException e1) {
 41             e1.printStackTrace();
 42         } finally {
 43             try {
 44                 Class.forName(jdbcDriver);
 45             } catch (ClassNotFoundException e) {
 46                 throw new ExceptionInInitializerError(e);
 47             }
 48         }
 49     }
 50
 51     //连接数据库
 52     public static Connection getConnection() throws SQLException {
 53         Connection connection = null;
 54         try {
 55             connection = DriverManager.getConnection(url, userName, password);
 56         } catch (Exception e) {
 57             System.out.println(e.getMessage());//如果出现异常,则 把异常信息打印到控台上
 58         }
 59         return connection;
 60     }
 61
 62     // 释放资源。   顺序:resultSet、statement、connection
 63     public static void free(ResultSet resultSet, Statement statement, Connection connection) {
 64         if (resultSet != null) {
 65             try {
 66                 resultSet.close();
 67             } catch (SQLException e) {
 68                 e.printStackTrace();
 69             } finally {
 70                 if (statement != null) {
 71                     try {
 72                         statement.close();
 73                     } catch (SQLException e) {
 74                         e.printStackTrace();
 75                     } finally {
 76                         if (connection != null) {
 77                             try {
 78                                 connection.close();
 79                             } catch (SQLException e) {
 80                                 e.printStackTrace();
 81                             }
 82                         }
 83                     }
 84                 }
 85             }
 86         }
 87     }
 88
 89     // 释放资源。  顺序:resultSet、preparedStatement、connection
 90     public static void free(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection) {
 91         if (resultSet != null) {
 92             try {
 93                 resultSet.close();
 94             } catch (SQLException e) {
 95                 e.printStackTrace();
 96             } finally {
 97                 if (preparedStatement != null) {
 98                     try {
 99                         preparedStatement.close();
100                     } catch (SQLException e) {
101                         e.printStackTrace();
102                     } finally {
103                         if (connection != null) {
104                             try {
105                                 connection.close();
106                             } catch (SQLException e) {
107                                 e.printStackTrace();
108                             }
109                         }
110                     }
111                 }
112             }
113         }
114     }
115 }

User 实体类

 1 package com.shore.entity;
 2
 3 /**
 4  * @author DSHORE/2020-1-15
 5  *
 6  */
 7 public class User {
 8     private Integer id;
 9     private String account;
10     private String password;
11
12     public Integer getId() {
13         return id;
14     }
15
16     public void setId(Integer id) {
17         this.id = id;
18     }
19
20     public String getAccount() {
21         return account;
22     }
23
24     public void setAccount(String account) {
25         this.account = account;
26     }
27
28     public String getPassword() {
29         return password;
30     }
31
32     public void setPassword(String password) {
33         this.password = password;
34     }
35 }

dao层

1 //接口
2 public interface IUserDao {
3     public int add(User user); //新增
4     public User findById(Integer id); //根据id查询
5 }
 1 package com.shore.dao.impl;
 2
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.Statement;
 7
 8 import com.shore.dao.IUserDao;
 9 import com.shore.entity.User;
10 import com.shore.util.DBUtils;
11
12 /**
13  * @author DSHORE/2020-1-15
14  *  接口实现类
15  */
16 public class UserDao implements IUserDao {
17     //全局变量
18     Connection connection = null;
19     Statement statement = null;
20     PreparedStatement preparedStatement = null;
21     ResultSet resultSet = null;
22
23     @Override //新增
24     public int add(User user) {
25         int result = 0;
26         String sql = "";
27         try {
28             connection = DBUtils.getConnection();
29             //Oracle数据库
30             sql = "insert into users values(users_seq.nextval,‘"+user.getAccount()+"‘,‘"+user.getPassword()+"‘)";
31             statement = connection.createStatement();
32             result = statement.executeUpdate(sql);//执行添加操作
33         } catch (Exception e) {
34             e.printStackTrace();
35         } finally{
36             DBUtils.free(null, statement, connection);
37         }
38         return result;
39     }
40
41     @Override //根据id查询
42     public User findById(Integer id) {
43         User user = null;
44         String sql = "";
45         try {
46             connection = DBUtils.getConnection();//连接数据库
47             //Oracle
48             sql = "select * from users where id = ?";
49             preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
50             preparedStatement.setInt(1, id);
51             resultSet = preparedStatement.executeQuery();//执行查询操作
52             if(resultSet.first()){
53                 user = new User();
54                 user.setId(id);
55                 user.setAccount(resultSet.getString("account"));
56                 user.setPassword(resultSet.getString("password"));
57             }
58         } catch (Exception e) {
59             e.fillInStackTrace();
60         } finally {
61             DBUtils.free(resultSet, preparedStatement, connection);
62         }
63         return user;
64     }
65 }

UserTest 测试类

 1 package com.shore.test;
 2
 3 import org.junit.Test;
 4
 5 import com.shore.dao.IUserDao;
 6 import com.shore.dao.impl.UserDao;
 7 import com.shore.entity.User;
 8
 9 /**
10  * @author DSHORE/2020-1-15
11  *
12  */
13 public class UserTest {
14     @Test
15     public void addTest() {
16         IUserDao userDao = new UserDao();
17         User user = new User();
18         user.setAccount("lisi");
19         user.setPassword("123456");
20         userDao.add(user); //添加成功
21     }
22
23     @Test
24     public void findByIdTest() {
25         IUserDao userDao = new UserDao();
26         User user = userDao.findById(2);
27         System.out.println(user); //返回值: [email protected]
28         System.out.println(user.getAccount()+" : "+user.getPassword()); //返回值: lisi : 123456
29     }
30 }

到此已完结(均测试成功)

附录

本文jdbc连接MySQL或Oracle数据库的全部代码(合起来,做对比)

用到的jar包

测试项目截图

    其中db.properties 和 odb.properties 配置文件是在src目录下,与com包名是同一级。

建表语句(SQL.sql)

 1 -- MySQL建表语句
 2 create table user(
 3   id number(5) primary key auto_increment,
 4   account varchar(20) not null,
 5   password varchar(32) not null
 6 );
 7 -- 插入数据(这里不是手动插入,而是使用测试类UserTest来插入)
 8 insert into user(account,password) values("张三","123456");
 9 insert into user(account,password) values("lisi","123456");
10
11
12 -- Oracle建表语句
13 create table users( -- user是Oracle关键字,不能用user
14   id number(5) primary key,
15   account varchar2(20) not null unique,
16   password varchar2(32) not null
17 );
18
19 -- 创建序列
20 create sequence users_seq  -- 序列名称:users_seq
21 minvalue 10  --最小值(建议稍微设置大一些,否则很容易出现这个错误  ORA-00001:违反唯一约束条件)
22 start with 1   --从1开始计数,数值可变
23 increment by 1  --每次加1,数值可变
24 nocycle  --一直累加,不循环;cycle:达到最大值后,将从头开始累加。  (maxvalue 999 -- 最大值)
25 nocache;  --不建缓冲区。
26
27 -- 插入数据(这里不是手动插入,而是使用测试类UserTest来插入)
28 insert into users(id,account,password) values(users_seq.nextval,‘张三‘,‘123456‘);
29 insert into users(id,account,password) values(users_seq.nextval,‘lisi‘,‘123456‘);

db.properties 配置文件

jdbcDriver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school
userName=root
password=123456

odb.properties 配置文件

1 jdbcDriver=oracle.jdbc.driver.OracleDriver
2 url=jdbc:oracle:thin:@localhost:1521:shoreid
3 userName=zhangsan
4 password=123456

DBUtils 工具类

  1 package com.shore.util;
  2
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.sql.Connection;
  6 import java.sql.DriverManager;
  7 import java.sql.PreparedStatement;
  8 import java.sql.ResultSet;
  9 import java.sql.SQLException;
 10 import java.sql.Statement;
 11 import java.util.Properties;
 12
 13 /**
 14  * @author DSHORE/2020-1-15
 15  * 连接数据库--->工具类
 16  */
 17 public class DBUtils {
 18
 19     private DBUtils() {
 20     }
 21
 22     private static String jdbcDriver = "";
 23     private static String url = "";
 24     private static String userName = "";
 25     private static String password = "";
 26
 27     static {
 28         Properties properties = new Properties();
 29         try {
 30             //读取配置文件(MySQL数据库)
 31             //InputStream inputStream = DBUtils.class.getResourceAsStream("/db.properties");
 32
 33             //读取配置文件(Oracle数据库)
 34             InputStream inputStream = DBUtils.class.getResourceAsStream("/odb.properties");
 35             properties.load(inputStream); //加载配置文件
 36             inputStream.close();//关闭输入流
 37
 38             //获取到对应参数的值
 39             jdbcDriver = properties.getProperty("jdbcDriver");
 40             url = properties.getProperty("url");
 41             userName = properties.getProperty("userName");
 42             password = properties.getProperty("password");
 43         } catch (IOException e1) {
 44             e1.printStackTrace();
 45         } finally {
 46             try {
 47                 Class.forName(jdbcDriver);
 48             } catch (ClassNotFoundException e) {
 49                 throw new ExceptionInInitializerError(e);
 50             }
 51         }
 52     }
 53
 54     //连接数据库
 55     public static Connection getConnection() throws SQLException {
 56         Connection connection = null;
 57         try {
 58             connection = DriverManager.getConnection(url, userName, password);
 59         } catch (Exception e) {
 60             System.out.println(e.getMessage());//如果出现异常,则 把异常信息打印到控台上
 61         }
 62         return connection;
 63     }
 64
 65     // 释放资源。   顺序:resultSet、statement、connection
 66     public static void free(ResultSet resultSet, Statement statement, Connection connection) {
 67         if (resultSet != null) {
 68             try {
 69                 resultSet.close();
 70             } catch (SQLException e) {
 71                 e.printStackTrace();
 72             } finally {
 73                 if (statement != null) {
 74                     try {
 75                         statement.close();
 76                     } catch (SQLException e) {
 77                         e.printStackTrace();
 78                     } finally {
 79                         if (connection != null) {
 80                             try {
 81                                 connection.close();
 82                             } catch (SQLException e) {
 83                                 e.printStackTrace();
 84                             }
 85                         }
 86                     }
 87                 }
 88             }
 89         }
 90     }
 91
 92     // 释放资源。  顺序:resultSet、preparedStatement、connection
 93     public static void free(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection) {
 94         if (resultSet != null) {
 95             try {
 96                 resultSet.close();
 97             } catch (SQLException e) {
 98                 e.printStackTrace();
 99             } finally {
100                 if (preparedStatement != null) {
101                     try {
102                         preparedStatement.close();
103                     } catch (SQLException e) {
104                         e.printStackTrace();
105                     } finally {
106                         if (connection != null) {
107                             try {
108                                 connection.close();
109                             } catch (SQLException e) {
110                                 e.printStackTrace();
111                             }
112                         }
113                     }
114                 }
115             }
116         }
117     }
118 }

User 实体类

 1 package com.shore.entity;
 2
 3 /**
 4  * @author DSHORE/2020-1-15
 5  *
 6  */
 7 public class User {
 8     private Integer id;
 9     private String account;
10     private String password;
11
12     public Integer getId() {
13         return id;
14     }
15
16     public void setId(Integer id) {
17         this.id = id;
18     }
19
20     public String getAccount() {
21         return account;
22     }
23
24     public void setAccount(String account) {
25         this.account = account;
26     }
27
28     public String getPassword() {
29         return password;
30     }
31
32     public void setPassword(String password) {
33         this.password = password;
34     }
35 }

DAO层

 1 package com.shore.dao;
 2
 3 import com.shore.entity.User;
 4
 5 /**
 6  * @author DSHORE/2020-1-15
 7  * 接口
 8  */
 9 public interface IUserDao {
10     public int add(User user); //新增
11     public User findById(Integer id); //根据id查询
12 }
 1 package com.shore.dao.impl;
 2
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.Statement;
 7
 8 import com.shore.dao.IUserDao;
 9 import com.shore.entity.User;
10 import com.shore.util.DBUtils;
11
12 /**
13  * @author DSHORE/2020-1-15
14  *
15  */
16 public class UserDao implements IUserDao {
17     //全局变量
18     Connection connection = null;
19     Statement statement = null;
20     PreparedStatement preparedStatement = null;
21     ResultSet resultSet = null;
22
23     @Override //新增
24     public int add(User user) {
25         int result = 0;
26         String sql = "";
27         try {
28             connection = DBUtils.getConnection();
29             //MySQL语句
30             //sql = "insert into user(account,password) values(‘"+user.getAccount()+"‘,‘"+user.getPassword()+"‘)";
31
32             //Oracle语句
33             sql = "insert into users values(users_seq.nextval,‘"+user.getAccount()+"‘,‘"+user.getPassword()+"‘)";
34
35             statement = connection.createStatement();
36             result = statement.executeUpdate(sql);//执行添加操作
37         } catch (Exception e) {
38             e.printStackTrace();
39         } finally{
40             DBUtils.free(null, statement, connection);
41         }
42         return result;
43     }
44
45     @Override //根据id查询
46     public User findById(Integer id) {
47         User user = null;
48         String sql = "";
49         try {
50             connection = DBUtils.getConnection();//连接数据库
51             //MySQL
52             /*sql = "select * from user where id = ?";
53             preparedStatement = connection.prepareStatement(sql);//编译/检查sql语句是否符合规范等等
54             */
55
56             //Oracle
57             sql = "select * from users where id = ?";
58             preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
59
60             preparedStatement.setInt(1, id);
61             resultSet = preparedStatement.executeQuery();//执行查询操作
62             if(resultSet.first()){
63                 user = new User();
64                 user.setId(id);
65                 user.setAccount(resultSet.getString("account"));
66                 user.setPassword(resultSet.getString("password"));
67             }
68         } catch (Exception e) {
69             e.fillInStackTrace();
70         } finally {
71             DBUtils.free(resultSet, preparedStatement, connection);
72         }
73         return user;
74     }
75 }

UserTest 测试类

 1 package com.shore.test;
 2
 3 import org.junit.Test;
 4
 5 import com.shore.dao.IUserDao;
 6 import com.shore.dao.impl.UserDao;
 7 import com.shore.entity.User;
 8
 9 /**
10  * @author DSHORE/2020-1-15
11  *
12  */
13 public class UserTest {
14     @Test
15     public void addTest() {
16         IUserDao userDao = new UserDao();
17         User user = new User();
18         user.setAccount("lisi");
19         user.setPassword("123456");
20         userDao.add(user); //添加成功
21     }
22
23     @Test
24     public void findByIdTest() {
25         IUserDao userDao = new UserDao();
26         User user = userDao.findById(2);
27         System.out.println(user); //返回值:【MySQL】[email protected]d9084      【Oracle】[email protected]
28         System.out.println(user.getAccount()+" : "+user.getPassword()); //返回值:【MySQL】张三 : 123456     【Oracle】lisi : 123456
29     }
30 }

Oracle 的测试结果图

均测试成功


原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/12198975.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

原文地址:https://www.cnblogs.com/dshore123/p/12198975.html

时间: 2024-10-13 18:31:00

Java基础102 完整的JDBC连接MySQL数据库和Oracle数据库的方法的相关文章

Java基础103 Hibernate技术连接MySQL数据和Oracle数据库的配置方法

1.Hibernate技术连接MySQL数据 User.hbm.xml 配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernat

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

(详细)JAVA使用JDBC连接MySQL数据库(1)- 软件

欢迎任何形式的转载,但请务必注明出处. 1.jdk 点击查看安装和环境配置教程 2.Eclipse 点击进入官网下载 注意下载完成打开.exe后,出现下图界面,有很多版本供选择 本人目前在学JSP所以安装的是Java EE版本,初学者可以选择第一个Java Developers版本 3.Mysql 点击进入官网下载 点击进入推荐安装教程+环境配置 下载页面注意事项 (虽然选项只有32位的,但下载完成后32位和64位都会安装) (上面的是在线安装,下面的是离线安装,建议选择离线安装) 系列文章 (

JAVA使用JDBC连接MySQL数据库 二(2)

本文是对 <JAVA使用JDBC连接MySQL数据库 二>的改进. 上节使用的是PreparedStatement来执行数据库语句,但是preparedStatement需要传递一个sql语句参数,才能创建.然而,DBHelper类只是起到打开和关闭数据库的作用,所以sql语句是要放到应用层部分的,而不是放到DBHelper类中. 而statment不需要传递一个sql语句参数,就能创建. 修改部分如下: public class DBHelper { String driver = &quo

java jdbc 连接mysql 数据库

JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver").newInstance(); JDBC URL 定义驱动程序与数据源之间的连接 标准语法: <protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identif

java用JDBC连接MySQL数据库的详细知识点

想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downloads/connector/j/ 2.MySQL数据库安装包的下载和安装:http://pan.baidu.com/s/1sleNubV 3.在dos命令窗口中对mysql进行配置和使用.配置如下: ①在开始菜单的搜索框中输入"cmd"命令. ②把安装mysql软件的路径到bin目录下输入

Java基础知识—发送Emai和访问MySQL数据库(七)

概述 Java程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) .Java访问数据则需要 使用JDBC 连接 MySQL 数据库.JDBC起到数据库驱动作用. E-Mail的发送 第三方包的下载地址方式,加载之后在对应的项目中导入该库文件. 访问 JavaMail 官网下载最新Jar文件: 访问 JAF(版本 1.1.1)官网下载最新JAR文件: 以下是下载之后,编写测试代码,能够借助网易

JDBC连接MySQL数据库及演示样例

JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一訪问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发者提供了一个标准的API,据此能够构建更高级的工具和接口,使数据库开发者能够用纯 Java API 编写数据库应用程序,而且可跨平台执行,而且不受数据库供应商的限制.

Crystal Reports 2008(水晶报表) JDBC连接mysql数据库

在本blog中,主要介绍的是Crystal Reports 2008使用JDBC连接mysql数据库. 在连接之间,首先要确认你电脑上面都安装了mysql数据库. 其次,就是jdbc连接数据时候所使用的相关jar包. 接下来,就可以进行数据库的一些连接操作了. 对JDBC不是很了解的,可以到 完整java开发中JDBC连接数据库代码和步骤 了解相关的操作 1.打开Crystal Reports的数据专家 2.点击JDBC(JNDI)出现: 3.输入url和数据库类名,点击下一步: 4.输入pas