首页 > 数据库技术 > 详细

JDBC数据库连接

时间:2016-01-11 11:52:17      阅读:202      评论:0      收藏:0      [点我收藏+]

这里数据库使用的是mysql数据库

准备工作:

#创建数据库
#CREATE DATABASE study_mybatis;

#选择数据库
#use study_mybatis;

#查看所有的数据库
#SHOW database;

#查看数据库表
#SHOW TABLEs;

#创建数据库表

DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `user_name` VARCHAR(100) DEFAULT NULL COMMENT 用户名,
  `password` VARCHAR(100) DEFAULT NULL COMMENT,
  `name` VARCHAR(100) DEFAULT NULL COMMENT,
  `age` INT(10) DEFAULT NULL COMMENT ,
  `sex` TINYINT(1) DEFAULT NULL COMMENT 性别,1男性,2女性,
  `birthday` DATE DEFAULT NULL COMMENT,
  `created` DATETIME DEFAULT NULL COMMENT ,
  `updated` DATETIME DEFAULT NULL COMMENT ,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`user_name`)
) ENGINE=INNODB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

#插入数据

INSERT INTO `tb_user` VALUES (1, zhangsan, 123456, 张三, 30, 1, 1984-08-08, 2014-09-19 16:56:04, 2014-09-21 11:24:59);
INSERT INTO `tb_user` VALUES (2, lisi, 123456, 李四, 21, 2, 1991-01-01, 2014-09-19 16:56:04, 2014-09-19 16:56:04);
INSERT INTO `tb_user` VALUES (3, wangwu, 123456, 王五, 22, 2, 1989-01-01, 2014-09-19 16:56:04, 2014-09-19 16:56:04);

#查看表中数据

SELECT * FROM tb_user;

java代码:

        String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://127.0.0.1:3306/study_mybatis";
        String user = "root";
        String password = "root123";

        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            Class.forName(MYSQL_DRIVER);
            //创建数据库连接
            connection = DriverManager.getConnection(url, user, password);
            
            //创建Statement对象
            String sql = "select * from tb_user where user_name = ?";
            preparedStatement = connection.prepareStatement(sql);

            //设置参数 ,下标从1开始
            preparedStatement.setString(1, "zhangsan");
            
            //执行sql 变量结果集 
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                System.out.println("user_name:"+resultSet.getString("user_name"));
                System.out.println("name:"+resultSet.getString("name"));

            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != resultSet) {
                resultSet.close();
            }
            if(null != preparedStatement){
                preparedStatement.close();
            }
            if(null != connection){
                connection.close();
            }
        }
    

使用传统的jdbc有什么利弊呢?

  1. 将数据库连接、用户名、密码等信息硬编码到java代码中,造成更换环境需要修改java代码,重新编译,麻烦;解决办法,将这些信息配置到外部的配置文件中;
  2. 频繁的创建连接、释放连接资源,造成了资源浪费,效率低,解决:使用连接池解决;

  3. sql语句硬编码到java代码中,实际开发中,需求经常变更,维护sql的成本变高;【sql中的参数要写到java代码中,而且需要人为的设置参数类型及参数下标

    解决:外部配置;

  4. 变量结果集不方便,需要手动封装对象,取值时需要判断数据类型,解决:能否自动将结果集映射为java对象?【mybatis】

 

JDBC数据库连接

原文:http://www.cnblogs.com/yangh965/p/5120498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!