时间:2021-07-01 10:21:17 帮助过:2人阅读
在写这个程序之前需要创建一个java工程,这是前提
接着加入mysql的驱动包,我用的数据库是5.1版本的,所以驱动包也是5.1版本的,jdk是1.7
创建数据库位mybatis,表名位user
package com.mybatis.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
* JDBC操作数据库
* @author Administrator
*
*/
public class JDBCTest {
public static void main(String[] args) {
//数据库链接
Connection connection=null;
//预编译的Statement,可以提高数据库性能
PreparedStatement preparedStatement=null;
//结果集
ResultSet resultSet=null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类来获取数据库链接
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "123456");
//定义sql语句,?表示占位符
String sql="select * from user where id=?";
//获取预处理的statement
preparedStatement=connection.prepareStatement(sql);
//设置sql参数,第一个参数是sql中的参数的序号(从1开始),第人体各参数是设置的值
preparedStatement.setInt(1, 1);
//向数据库发出sql请求,查询结果集
resultSet=preparedStatement.executeQuery();
//遍历查询结果集
while (resultSet.next()) {
System.out.println(resultSet.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//关闭连接
resultSet.close();
preparedStatement.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
根据以上编码步骤,我们得到以下结论:
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建jdbcstatement对象
4、 设置sql语句
5、 设置sql语句中的参数(使用preparedStatement)
6、 通过statement执行sql并获取结果
7、 对sql执行结果进行解析处理
8、 释放资源(resultSet、preparedstatement、connection)
以上是一个简单的用jdbc操作数据库的例子,那么来简单的说下这样操作数据库会有一些怎样的问题。
1、数据库连接,使用时就创建,不适用就释放,对数据库进行频繁的开启和关闭操作,这是种资源的浪费,影响数据库性能。
设想:使用数据库连接池管理数据库连接。
2、将sql语句硬编码到Java代码中,如果sql语句修改,需要重新编译Java代码,不利于系统维护。
设想:将sql语句配置在xml配置文件中,即使sql变化,也不需要对java代码进行修改重新编译。
3、向preparedStatement中设置参数,对占位符位置参数值,硬编码在java中,不利于系统维护。
设想:将sql语句及占位符和参数全部配置在xml中。
4、从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。
设想:将结果集映射成java对象。
对原生态jdbc(单独使用jdbc开发)问题总结
标签: