1. JDBC简单使用
1.1 加载驱动
try {
Class.forName(“com.mysql.jdbc.Driver”) ; //加载驱动
} catch (ClassNotFoundException e) {
System.out.println(“找不到驱动程序类 ,加载驱动失败!”);
e.printStackTrace();
}
1.2 连接数据库
String url = “jdbc:mysql://localhost:3306/student” ; //student数据库名称
String username = “root” ; //数据库账号
String password = “123456” ; //数据库密码
Connection con = null; //定义Connection的变量
try{
con = DriverManager.getConnection(url,username,password ) ; //连接数据库
}catch(SQLException se){
System.out.println(“数据库连接失败!”);
se.printStackTrace() ;
}
1.3 写sql语句
String sql=“select * from users”; //此处的位查询语句
1.4 得到statement对象
PreparedStatement stmt = null; //要执行动态sql,获取stmt
try {
stmt = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
1.5 执行sql语句
ResultSet rs = null; //执行sql
try {
rs = stmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
1.6 处理记录集
while (rs.next()) { //循环读取数据直到结束
pass=rs.getString(1); //获取表中第一列数据
System.out.print(" UserName: " + pass); //输出
System.out.print("\n"); //换行
}
1.7 关闭资源
关闭对象的顺序声明对象的顺序相反;
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(con!= null) { // 关闭连接对象
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
2. JDBC的增删查改功能
2.1 增
加载驱动:同上
链接数据库:同上
写SQL语句:
String sql = “insert into users (UserName,Password,Id) values(?,?,?)”; // 生成一条sql语句
// 为sql语句中第一个问号赋值
ps.setString(1, “0121610870329”);
// 为sql语句中第二个问号赋值
ps.setString(2, “000000”);
// 为sql语句中第三个问号赋值
ps.setString(3, “教师”);
创建一个Statment对象:同上
执行sql语句:
stmt.executeUpdate();
关闭资源:
stmt.close();
con.close();
System.out.println(“数据插入完毕!!!”);
2.2删
加载驱动:同上
链接数据库:同上
写SQL语句:
String sql = “delete from users where UserName=‘0121610870321’”;//users:表;
创建一个Statment对象:同上
执行sql语句:
stmt.executeUpdate();
关闭资源:
stmt.close();
con.close();
System.out.println(“数据删除完毕!!!”);
2.3查
加载驱动:同上
链接数据库:同上
写SQL语句:
String sql=“select * from users”;
创建一个Statment对象:同上
执行sql语句:
rs = stmt.executeQuery();
处理结果集
while (rs.next()) { //循环读取数据直到结束
pass=rs.getString(1); //获取表中第一列数据
System.out.print(" UserName: " + pass); //输出
System.out.print("\n"); //换行
}
关闭资源:
rs.close() ;
stmt.close() ;
con.close();
2.4 改
加载驱动:同上
链接数据库:同上
写SQL语句:
String sql = “update users set Password=‘000000’ where UserName=‘0121610870324’”;
创建一个Statment对象:同上
执行sql语句:
stmt.executeUpdate();
关闭资源:
stmt.close();
con.close();
System.out.println(“数据修改完毕!!!”);
3.封装
3.1 建一个Util的包
右键点击src包,点击new,点击package.
输入包名,点击OK
3.2创建类
右击新建的包util,点击new,点击javaclass
输入DBUtil名称,点击ok,类已经创好。
在建立一个DBUT的类。
3.3 头部封装编写代码
public class DBUtil { //创建类
public static Connection getConnection() { //创建返回值类型为Connection的函数,
try { //复制jdbc的前俩个步骤的代码
Class.forName(“com.mysql.jdbc.Driver”); //加载驱动
} catch (ClassNotFoundException e) {
System.out.println(“找不到驱动程序类 ,加载驱动失败!”);
e.printStackTrace();
}
String url = “jdbc:mysql://localhost:3306/student”;
String username = “root”;
String password = “123456”;
Connection con = null;
try {
con = DriverManager.getConnection(url, username, password); //连接数据库
} catch (SQLException se) {
System.out.println(“数据库连接失败!”);
se.printStackTrace();
}
return con; //返还参数
}
封装完成。
try {
Class.forName(“com.mysql.jdbc.Driver”) ; //加载驱动
} catch (ClassNotFoundException e) {
System.out.println(“找不到驱动程序类 ,加载驱动失败!”);
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/student" ;
String username = "root" ;
String password = "123456" ;
Connection con = null;
try{
con = DriverManager.getConnection(url,username,password ) ; //连接数据库
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
替换为下列代码。
Connection con = null;
con=DBUtil.getConnection();
3.4尾部封装编写代码
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUt {
public static void Postend(Connection con , PreparedStatement stmt, ResultSet rs)
{
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(con!= null) { // 关闭连接对象
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
封装完成。
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(con!= null) { // 关闭连接对象
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
替换为
DBUt.Postend(con , stmt,rs);
4.创建实体类
4.1 先创建包lib,再创建usersint类
方法同上,可自行查阅。
4.2编写代码
public class usersint {
/*public usersint(String UserName, String Password , String Id )
{
this.UserName=UserName;
this.Password=Password;
this.Id=Id;
}*/
public usersint(String userName, String password, String id) {
UserName = userName;
Password = password;
Id = id;
}
private String UserName;
private String Password;
private String Id;
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
@Override
public String toString() {
return "usersint{" +
"UserName=" + UserName +
", Password=" + Password +
", Id=" + Id +
'}';
}
}
4.3快捷键生成法
先写下列语句:
private String UserName;
private String Password;
private String Id;
空白处点击右键
点击Generate。
点击随意点击三个中的一个。
按住CTRL点击三项,点击OK。
实体类创建完成。
5 处理集替换
List list =new ArrayList<>();
while (rs.next()) {
String UserName=rs.getString(1);
String Password=rs.getString(2);
String Id=rs.getString(3);
usersint userss=new usersint( UserName, Password , Id);
list.add(userss);
//rs.next();
//pass=rs.getString(1); //获取数据
//System.out.print(" UserName: " + pass);
//System.out.print("\n");
}
System.out.println(list.toString());
6 将代码放入函数体中,主函数调用。
First first=new First(); //First 类名
first.Infor();