JDBC之Java连接mysql实现增删改查
程序员文章站
2022-04-08 21:22:56
使用软件:mysql、eclipse 链接步骤: 1.注册驱动 2.创建一个连接对象 3.写sql语句 4.执行sql语句并返回一个结果或者结果集 5.关闭链接(一般就是connection、statement、setresult)这三个连接对象,关闭顺序一般是(setresult > statem ......
使用软件:mysql、eclipse
链接步骤:
1.注册驱动
2.创建一个连接对象
3.写sql语句
4.执行sql语句并返回一个结果或者结果集
5.关闭链接(一般就是connection、statement、setresult)这三个连接对象,关闭顺序一般是(setresult ---> statement --> setresult )
一、直接连接方法:(这种方法就是讲sql语句和结果所有的步骤写在一起) 不建议使用该方法
1 public static void main(string[] args) { 2 string url = "jdbc:mysql://localhost:3306/students"; 3 string user = "root"; 4 string password = "admin"; 5 connection conn = null; 6 statement st = null; 7 8 try { 9 // 1. 注册驱动 10 class.forname("com.mysql.jdbc.driver"); 11 // 2. 创建一个链接对象 12 conn = drivermanager.getconnection(url,user,password); 13 // 3. 创建一个sql语句的发送命令对象 14 string sql = "insert into student values('2001','tom','20','7000')"; 15 st= conn.createstatement(); 16 // 4. 执行sql语句,拿到查询的结果集对象 17 st.executequery(sql);20 } catch (exception e) { 21 e.printstacktrace(); 22 }finally { 23 // 5. 关闭链接 ,命令对象 ,结果集 24 if(st != null) { 25 try { 26 st.close(); 27 } catch (exception e) { 28 e.printstacktrace(); 29 } 30 } 31 if(conn != null) { 32 try { 33 conn.close(); 34 } catch (exception e) { 35 e.printstacktrace(); 36 } 37 } 38 }
二、建立工具类方法,将必要的几步写一个类,使用的时候直接调用(建议使用)
1.注册驱动、创建连接对象、关闭资源 这三部一般可以写一个类,由于写sql语句和执行sql语句的结果不一致,所以可以将其在用到的时候在写
2.一般写工具类都是写成静态方法,以方便调用
//这是工具类:
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.resultset;
import java.sql.statement;
public class jdbcutils {
private static string drivername = "com.mysql.jdbc.driver";
private static string url = "jdbc:mysql://localhost:3306/student_achievement_system";
private static string user = "root";
private static string password = "admin";
/**
* 链接数据库
*/
static {
try {
class.forname(jdbcutils.drivername);
} catch (exception e) {
e.printstacktrace();
}
}
/**
* 获取链接对象connection
* @return
*/
public static connection getconnection() {
try {
return drivermanager.getconnection(jdbcutils.url, jdbcutils.user, jdbcutils.password);
} catch (exception e) {
e.printstacktrace();
}
return null;
}
/**
* 关闭资源
* @param conn
* @param st
* @param rs
*/
public static void close(connection conn,statement st,resultset rs) {
if(rs != null) {
try {
rs.close();
} catch (exception e) {
e.printstacktrace();
}
}
if(st != null) {
try {
st.close();
} catch (exception e) {
e.printstacktrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
}
//这是对数据库的基本操作类
// 增加、删除、更新、查找一条、查找所有的方法
public class studentsdaoimpl implements istudentsdao {
//增加
@override
public int save(students student) {
connection conn = null;
preparedstatement ps = null;
try {
conn = jdbcutils.getconnection();
string sql = "insert into students values(?,?,?,?,?,?)";
ps = conn.preparestatement(sql);
ps.setint(1, student.getstudentid());
ps.setstring(2, student.getstudentname());
ps.setstring(3, student.getsex());
ps.setstring(4, student.getphoneno());
ps.setstring(5, student.getaddress());
ps.setdate(6, (date) student.getbirthday());
int row = ps.executeupdate();
return row;
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutils.close(conn, ps, null);
}
return 0;
}
//删除
@override
public int delete(int studentid) {
connection conn = null;
preparedstatement ps = null;
try {
conn = jdbcutils.getconnection();
string sql = "delete from students where studentid=?";
ps = conn.preparestatement(sql);
ps.setint(1, studentid);
int row = ps.executeupdate();
return row;
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutils.close(conn, ps, null);
}
return 0;
}
//更新
@override
public int update(int studentid, students student) {
connection conn = null;
preparedstatement ps = null;
try {
conn = jdbcutils.getconnection();
string sql = "update students set studentname=?,sex=?,phoneno=?,address=?,birthday=? where studentid=?";
ps = conn.preparestatement(sql);
ps.setstring(1, student.getstudentname());
ps.setstring(2, student.getsex());
ps.setstring(3, student.getphoneno());
ps.setstring(4, student.getaddress());
ps.setdate(5, ((date) student.getbirthday()));
ps.setint(6, studentid);
int row = ps.executeupdate();
return row;
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutils.close(conn, ps, null);
}
return 0;
}
//查找一条数据
@override
public students getbystudentid(int studentid) {
connection conn = null;
preparedstatement ps = null;
resultset rs = null;
try {
conn = jdbcutils.getconnection();
string sql = "select * from students where studentid=?";
ps = conn.preparestatement(sql);
ps.setint(1, studentid);
rs = ps.executequery();
if(rs.next()) {
students student = new students();
student.setstudentid(rs.getint("studentid"));
student.setstudentname(rs.getstring("studentname"));
student.setsex(rs.getstring("sex"));
student.setphoneno(rs.getstring("phoneno"));
student.setaddress(rs.getstring("address"));
student.setbirthday(rs.getdate("birthday"));
return student;
}
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutils.close(conn, ps, rs);
}
return null;
}
//查找所有数据
@override
public list<students> getall() {
connection conn = null;
preparedstatement ps = null;
resultset rs = null;
try {
conn = jdbcutils.getconnection();
string sql = "select * from students";
ps = conn.preparestatement(sql);
rs = ps.executequery();
list<students> studentslist = new arraylist<>();
while(rs.next()) {
students student = new students();
student.setstudentid(rs.getint("studentid"));
student.setstudentname(rs.getstring("studentname"));
student.setsex(rs.getstring("sex"));
student.setphoneno(rs.getstring("phoneno"));
student.setaddress(rs.getstring("address"));
student.setbirthday(rs.getdate("birthday"));
studentslist.add(student);
}
return studentslist;
} catch (exception e) {
e.printstacktrace();
}finally {
jdbcutils.close(conn, ps, rs);
}
return null;
}
}
推荐阅读
-
Python实现连接MySql数据库及增删改查操作详解
-
Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
-
MySql+IDEA简单实现JDBC的增删改查
-
JDBC之Java连接mysql实现增删改查
-
java JDBC连接数据库 实现数据的增删改查
-
java 项目中通过JDBC 实现sqlite数据库的增删改查操作
-
oracle/mysql连接德鲁伊数据库连接池和使用dbutils第三方jar包简化dao层实现增删改查
-
JSP + Servlet + JDBC + Mysql 实现增删改查
-
JSP + Servlet + JDBC + Mysql 简单实现增删改查
-
教你用springboot连接mysql并实现增删改查