【转载】使用注解和反射实现通用性…

JDBC 是什么 ?

JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC代表Java数据库连接。

JDBC通常的使用步骤有7步:

    加载JDBC驱动程序

   使用数据库的用户名和密码以及 URL 获取链接数据的 connection

    创建一个Statement或者是PreparedStatement(建议使用,放 SQL 注入)

    执行 SQL

    处理结果

    关闭数据库链接释放资源

 

下面是上述步骤的处理代码

在介绍 jdbc 连接之前先介绍配置信息的读取;

注意:要在项目中添加 MySQL 的驱动 jar 包,我用的是5.6.24,驱动包是mysql-connector-java-5.0.7-bin.jar

src/dbconfig.properties

driverClass=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=UTF-8

userName=root

password=

本系列文章主要针对 MySQL 数据来讲的,数据名为 test链接数据的用户名和密码分别是root ,由于我使用的是 xampp 集成的数据库所以默认的数据库密码是空的。

测试过程使用的数据表 user;并手动添加几条测试数据

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(50) DEFAULT NULL,

  `brith` date DEFAULT NULL,

  `detail_time` datetime DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;

 

SET FOREIGN_KEY_CHECKS = 1;

 

package com.ubuntuvim.utils;


 

public class DBConnUtils {

            

            private static Connection conn = null;

            private static Properties props = null;

 

            static {

                        props = new Properties();

                        try {

                                    //  加载配置文件

                                    props.load(DBConnUtils.class.getResourceAsStream("/dbconfig.properties"));

                        } catch (IOException e1) {

                                    e1.printStackTrace();

                        }

                        try {

                                    //  读取配置文件的值并加载 MySQL 驱动

                                    Class.forName(props.getProperty("driverClass"));

                        } catch (ClassNotFoundException e) {

                                    e.printStackTrace();

                        }

            }

            

            

            public static Connection getConnection(){

                        try {

                                    // 根据 URL、用户名、密码链接数据库

                                    conn = DriverManager.getConnection(props.getProperty("url"), props.getProperty("username"), props.getProperty("password"));

                                    conn.setAutoCommit(false);  // 设置为 false 之后需要conn.commit();才会把SQL 的执行结果提交到数据库

                        } catch (SQLException e) {

                                    e.printStackTrace();

                        }

                        return conn;

            }

 

            

            

            public static void closeConn(){

                        try {

                                    if (conn != null)

                                                conn.close();

                        } catch (SQLException e) {

                                    e.printStackTrace();

                        }

                        

            }

}

 

 

下面请看详细解释;

1,加载驱动,以 MySQL 为例;

Class.forName(props.getProperty("driverClass"));

 

2,使用数据库的用户名和密码以及 URL 获取链接数据的 connection

// 根据 URL、用户名、密码链接数据库

conn = DriverManager.getConnection(

    props.getProperty("url"), 

    props.getProperty("username"), 

    props.getProperty("password"));

得到 connection 之后我们先使用 junit 测试是否链接成功;

public class DBConnUtilsTest {

 

      private static DBConnUtils dbConnUtil null;

      

      @BeforeClass

      public static void setUpBeforeClass() throws Exception {

            dbConnUtil new DBConnUtils();

      }

 

      @AfterClass

      public static void tearDownAfterClass() throws Exception {

            dbConnUtil null;

      }

 

      @Test

      public void testGetConntion() {

            assertNotNull("对象实例化失败了!!"dbConnUtil);

            assertNotNull("链接数据库失败了!!", DBConnUtils.getConnection());

      }

 

}

运行测试得到如下结果

【转载】使用注解和反射实现通用性的 <wbr>jdbc操作数据库之最简单的 <wbr>jdbc <wbr>操作_1

结果显示测试通过,connection 对象不为空,说明连接成功了。

由于字数限制,只能分割为2篇发表,后面的内容接在下面的文章

使用注解和反射实现通用性的 jdbc操作数据库之最简单的 jdbc 操作_2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值