欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

JDBC数据库连接

程序员文章站 2022-05-13 14:18:59
...

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MyConnection { static Statement statement = null

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MyConnection {
static Statement statement = null;
static PreparedStatement preStat = null;
static ResultSet resultSet = null;
static Connection con = null;

public static void main(String[] args) {
MyConnection mycon = new MyConnection();
Connection con = mycon.getConnection();
// ********************数据遍历
// Statement用来执行sql语句
try {
statement = con.createStatement();

// 要执行的SQL语句
String sql = "select * from Student";

// 结果集
resultSet = statement.executeQuery(sql);

// 遍历数据
while (resultSet.next()) {

String Sid = resultSet.getString(1);
String Sname = resultSet.getString(2);
String Sage = resultSet.getString(3);
String Ssex = resultSet.getString(4);
String Szhuanye = resultSet.getString(5);

System.out.println("Sid:" + Sid + " Sname:" + Sname
+ " Sage:" + Sage + " Ssex:" + Ssex + " Szhuanye:"
+ Szhuanye);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// ************执行增删改 字符串的拼接 *********
// insert into student valuse('"+Sid+"','"+Sname+"'.......);

// ****************预处理执行增删改**************
String insert = "insert into student values(?,?,?,?,?)";
String update = "update student set Sname=? where Sid=?";
String delete = "delete from student where Sid=?";

// 增加数据
try {
preStat = con.prepareStatement(insert);

// 这里可能还要判断一下数据库的约束条件
preStat.setString(1, "100080");
preStat.setString(2, "我试试");
preStat.setString(3, "100");
preStat.setString(4, "男");
preStat.setString(5, "100080");

// 执行sql语句
preStat.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// **********更新数据
try {
preStat = con.prepareStatement(update);

preStat.setString(1, "更改");
preStat.setString(2, "100080");

preStat.executeUpdate();

} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

// **********删除数据
try {
preStat = con.prepareStatement(delete);

preStat.setString(1, "100080");

preStat.executeUpdate();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

// ************************预处理语句PreparedStatement 查询数据

try {
preStat = con.prepareStatement("select * from Student where Sid=?");
// 设置参数 表示 第一个参数 为100002
preStat.setString(1, "100080");
// 执行预处理语句
resultSet = preStat.executeQuery();

// 遍历数据
while (resultSet.next()) {

String Sid = resultSet.getString(1);
String Sname = resultSet.getString(2);
String Sage = resultSet.getString(3);
String Ssex = resultSet.getString(4);
String Szhuanye = resultSet.getString(5);

System.out.println("Sid:" + Sid + " Sname:" + Sname
+ " Sage:" + Sage + " Ssex:" + Ssex + " Szhuanye:"
+ Szhuanye);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

// 数据库连接方法
public Connection getConnection() {
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名score
String url = "jdbc:mysql://localhost:3306/score?useUnicode=true&characterEncoding=UTF-8";
//注意score后面家的代码是指定编码 不知道 有可能乱码
// String url="jdbc:mysql://127.0.0.1:3306/score";
// MySQL配置时的用户名
String user = "root";
// MySQL配置时的密码
String password = "123456";

try {
// 加载驱动 通过名字把类的源数据对象加载到内存中
Class.forName(driver);

// 连续数据库
con = DriverManager.getConnection(url, user, password);

if (!con.isClosed())
System.out.println("数据库连接成功!");

} catch (Exception e) {
e.printStackTrace();
}

return con;
}

}