1、数据库启动包配置到工程目录中(mysql5.1)
- mysql-connector-java-5.1.7-bin.jar

2、jdbc原生态操作数据库(程序)
- 操作mysql数据库
1 package cn.com.mybatis.jdbc;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.PreparedStatement;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8
9 public class JdbcTest {
10 public static void main(String[] args) {
11 //数据库连接
12 Connection connection = null;
13
14 //预编译的statement,使用预编译的Statement可以提高数据库性能
15 PreparedStatement preparedStatement = null;
16
17 //结果集
18 ResultSet resultSet = null;
19
20 try {
21 //加载数据库驱动
22 Class.forName("com.mysql.jdbc.Driver");
23
24 //通过驱动管理类来获取数据库连接
25 connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mybatis?allowMultiQueries=true&autoReconnect=true&characterEncoding=utf8", "root", "admin123");
26 //定义sql语句,?号表示占位符
27 String sql = "select * from user where username = ?";
28 //获取预编译的Statement
29 preparedStatement = connection.prepareStatement(sql);
30
31 //向占位符填充参数
32 preparedStatement.setString(1, "王五");
33
34 //向数据库发出sql执行查询,查询出结果集
35 resultSet = preparedStatement.executeQuery();
36 //遍历查询结果
37 while(resultSet.next()) {
38 System.out.println(resultSet.getString("id")+" "+resultSet.getString("username"));
39 }
40 } catch (Exception e) {
41 e.printStackTrace();
42 } finally{
43 //释放资源
44 if(resultSet!=null){
45 try {
46 resultSet.close();
47 } catch (SQLException e) {
48 // TODO Auto-generated catch block
49 e.printStackTrace();
50 }
51 }
52 if(preparedStatement!=null){
53 try {
54 preparedStatement.close();
55 } catch (SQLException e) {
56 // TODO Auto-generated catch block
57 e.printStackTrace();
58 }
59 }
60 if(connection!=null){
61 try {
62 connection.close();
63 } catch (SQLException e) {
64 // TODO Auto-generated catch block
65 e.printStackTrace();
66 }
67 }
68
69 }
70
71
72 }
73
74 }
- 运行结果:

2、问题总结
- 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。
设想:使用数据库连接池管理数据库连接。
- 将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。
设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。
- 向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。
设想:将sql语句及占位符号和参数全部配置在xml中。
- 从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。
设想:将查询的结果集,自动映射成java对象。
来源:https://www.cnblogs.com/licl11092/p/9218390.html