了解数据库连接的步骤
了解数据库操作原理
有关数据库的建立
封装学生类
package MyJDBC2;
public class Student {
int id;
String name;
public Student() {
super();
}
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
public int compareTo(Student o) {
Student st = o;
return this.id - st.id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
实现类以及数据库的连接等操作
package MyJDBC2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* java规定了所有的程序员用固定的步骤(一个方式访问)数据库,不管什么数据库,
* 1,加载驱动:数据库编程,使用前必须装驱动
* Class.forName("com.mysql.jdbc.Driver");
* Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
* Class.forName("oracle.jdbc.driver.OracleDriver");//加入oracle的驱动,
* 2,获得连接
* 3,发送SQL语句
* 4,提交SQL操作,获得结果
* 5,处理结果集
*
*排序(默认升序ASC,降序DESC),order by,多个用,隔开
*增加列:alter table stu add salary float
*修改表结构:alter table stu modify
*组件通常是1表,外键通常是在多的一端
*注意:如果表有主外键关系,增加的时候必须先有主键记录才能插入外键记录,删除的时候要先删除外键的表记录,才能删主表记录
*/
public class StuImpl {
String user="root";//用户名
String pwd="123456";//密码
String url="jdbc:mysql://localhost:3306/school";//路径
Connection con;//与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
PreparedStatement pstd;
ResultSet rs;
public void login(int id,String name){
String sql="select * from stu where id=? and name=?";
try {
//1,装载驱动,先导入驱动包到工程
Class.forName("com.mysql.jdbc.Driver");
//2,获得连接
con = DriverManager.getConnection(url,user, pwd);
//3,发送SQL语句
pstd = con.prepareStatement(sql);
pstd.setInt(1, 2);
pstd.setString(2, "王老五");
//4,提交SQL操作,获得结果
rs = pstd.executeQuery();
Student st = null;
//5,处理结果
while(rs.next()){
int id2 = rs.getInt("id");
String n = rs.getString("name");
st = new Student(id,n);
System.out.println(st+"该用户是合法用户。。。。。。。。。。。");
}
//6,关闭资源
rs.close();
pstd.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//查找
public void findStuById(int id){
String sql="select * from stu where id=?";
Student st = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url,user, pwd);
pstd = con.prepareStatement(sql);
pstd.setInt(1, id);//第一个问号为id
rs = pstd.executeQuery();//executeQuery只能查询,插入用execute
while(rs.next()){
//从数据库取出的数据为集合,遍历取出存入st
int i = rs.getInt("id");
String n = rs.getString("name");
st = new Student(i,n);
System.out.println(st);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//写入数据
public void addStu(int i,String n){
String sql="insert into stu(id,name) values(?,?)";
try {
//1,装载驱动
Class.forName("com.mysql.jdbc.Driver");
//2,获得连接
con = DriverManager.getConnection(url,user, pwd);
//3,发送SQL语句
pstd = con.prepareStatement(sql);
//输入问号
pstd.setInt(1, i);
pstd.setString(2, n);
//4,提交SQL操作,获得结果
pstd.execute();
//5,处理结果
System.out.println("数据写入成功");
//6,关闭资源
pstd.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
StuImpl ss = new StuImpl();
System.out.println("login的结果《》《》《》《》");
ss.login(123, "王大拿");
System.out.println("findStuById的结果-----");
ss.findStuById(4);
System.out.println("addstu的结果-=-=-=-=-=-");
ss.addStu(8, "何郑波");
}
}