目录
一:IDEA创建Maven项目
File -> New -> Project (弹出:new Project窗口) -> 左侧选择Maven 和 Project SDK 点击New -> 输入项目名称和项目所在地址,选择Finish 创建新项目
二:在Maven的pom.xml中 导入mysql的依赖包
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
</dependencies>
三:创建数据库-准备数据
#新建数据库
CREATE DATABASE juntest;
#新建表
DROP TABLE IF EXISTS user;
#新建字段
CREATE TABLE user (
id char(32) NOT NULL,
user_name varchar(32) DEFAULT NULL,
password varchar(32) DEFAULT NULL,
age int(10) DEFAULT NULL,
sex int(2) DEFAULT NULL,
birthday date DEFAULT NULL,
created datetime DEFAULT NULL,
updated datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#插入数据
INSERT INTO juntest.user(id,user_name,password,age,sex,birthday,created,updated)
VALUES('1001','junjun','123456','13','1','2019-11-03',SYSDATE(),SYSDATE())
新建后的数据:
四:JDBC基础代码
package com.test.junjun.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTestDemo {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null ;
ResultSet rs= null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取链接
String url = "jdbc:mysql://127.0.0.1:3306/juntest";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
//获取statement,preparedStatement,
String sql = "select * from test_user where id='1001' ";
preparedStatement = connection.prepareStatement(sql);
//执行查询
rs = preparedStatement.executeQuery();
//处理结果集
while (rs.next()) {
System.out.println(rs.getString("user_name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭连接 释放资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
五:JDBC缺点分析
1.每次都要加载连接,且驱动名称为硬编码
2.每次都要获取连接,且连接信息也为硬编码
3.存在sql 和java代码耦合
4.参数类型需要手动判断,且需要判断下标和手动设置参数
5.结果集中的数据类型需要手动判断,下标或列名需要手动判断
6.每次都要打开或关闭连接,浪费资源;