标签:rom 取数 方法 set abs teacher print on() date
1、JDBC是什么?
JDBC(JAVA DataBase Connection)即JAVA数据库连接技术,JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。
JDBC库中所包含的API通常与数据库使用于:
2、数据库驱动与常用接口
JDBC API使用数据库驱动连接操作数据库,其实也就是数据库厂商的JDBC接口实现,即对Connection等接口的实现类的jar文件。
我使用的是MySql数据库,所以使用MySql提供的数据库驱动包mysql-connector-java-5.1.40-bin.jar。
驱动包一般会提供很多操作数据库的接口,常用的有:
3、JDBC使用步骤
JDBC标准流程为:加载JDBC驱动程序→建立数据库连接Connection→创建执行SQL的语句Statement→处理执行结果ResultSet→释放资源,其中释放资源顺序为:ResultSet→Statement→Connection。
以下是我的一个JDBC小程序,作为一个基本例子:
首先创建要是用的数据库表:
create database db_test;
use db_test;
create table person(
id int primary key,
name varchar(20),
job varchar(20)
);
insert into person values(1001,‘zhangsan‘,‘teacher‘);
创建对应的java项目并将MySql添加到classpath,我这里因为使用了spring-boot,所以很方便不用去手动添加了。创建Person类与对应的测试类,可以写个main方法方便测试:
public class Person {
private Integer id;
private String name;
private String teacher;
public void setName(String name) {
this.name = name;
}
public void setId(Integer id) {
this.id = id;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getName() {
return name;
}
public Integer getId() {
return id;
}
public String getTeacher() {
return teacher;
}
}
import java.sql.*;
public class PersonTest {
public static void main(String[] arrgs){
Person p1 = new Person();
p1.setId(1002);
p1.setName("lisi");
p1.setJob("student");
Person p2 = new Person();
p2.setId(1001);
p2.setName("wangwu");
p2.setJob("teacher");
getAll();
update(p2);
getAll();
insert(p1);
getAll();
}
/**
* 获取数据库连接方法
* @return
*/
private static Connection getConn(){
String driver = "com.mysql.jdbc.Driver";
//后面的一串表示关闭ssl协议
String url = "jdbc:mysql://192.168.1.110:3306/db_test?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String username = "root";
String password = "123456";
Connection connection = null;
try {
//加载驱动
Class.forName(driver);
//获取数据库连接
connection = (Connection) DriverManager.getConnection(url, username, password);
}catch (SQLException e){
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
return connection;
}
/**
* 插入方法
* @param person
* @return
*/
private static int insert(Person person){
Connection connection = getConn();
int i = 0;
String sql = "insert into person (id,name,job) values(?,?,?);";
PreparedStatement pstmt;
try {
//从连接获取PreparedStatement对象
pstmt = (PreparedStatement) connection.prepareStatement(sql);
//组装sql
pstmt.setInt(1, person.getId());
pstmt.setString(2, person.getName());
pstmt.setString(3, person.getJob());
//执行sql
i = pstmt.executeUpdate();
//关闭连接
pstmt.close();
connection.close();
}catch (SQLException e){
e.printStackTrace();
}
return i;
}
/**
* 更新方法
* @param person
* @return
*/
private static int update(Person person) {
Connection conn = getConn();
int i = 0;
String sql = "update person set name=‘" + person.getName() + "‘ where id=‘" + person.getId() + "‘";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
private static Integer getAll() {
Connection conn = getConn();
String sql = "select * from person";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement)conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
int col = rs.getMetaData().getColumnCount();
System.out.println("============================");
while (rs.next()) {
for (int i = 1; i <= col; i++) {
System.out.print(rs.getString(i) + "\t");
if ((i == 2) && (rs.getString(i).length() < 8)) {
System.out.print("\t");
}
}
System.out.println("");
}
System.out.println("============================");
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
private static int delete(Integer id) {
Connection conn = getConn();
int i = 0;
String sql = "delete from person where id=‘" + id + "‘";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
}
最后结果如下图:
标签:rom 取数 方法 set abs teacher print on() date
原文地址:https://www.cnblogs.com/gaochsh/p/jdbc.html