作者:邹爱红
撰写时间:2019年05月18日
Jdbc是什么?
是与数据库进行交互,可以进行增删查改。
如何写jdbc:
- 加载驱动类 Class.forName(里面是驱动的路径);
驱动:为了实现java可以跟数据库进行连接,就可以连接到数据库,然后进行增删查改
- 获取连接Connection 对数据库进行交互
定义三个参数:
public static String username=" root";//数据库用户名
public static String password=" root";//数据库的密码
private static String url="jdbc:mysql://localhost:3306/test";
//jdbc:mysql数据库:// localhost:端口号/数据库里面的名称
用DriverManager 获取getConnection数据库连接
Connection con=DriverManager.getConnection(url, username, password);
- 获取PreparedStatement
用Connection创建preparedstatement,执行sql语句,并返回结果集。
PreparedStatement ps=con.prepareStatement("select * from tablename1 where id=? Name=?");
?是给占位符赋值
那么如何给占位符赋值:
ps.setInt(1, 1); 第一个占位符是1,后面是赋的值
ps.setString(2, "小天");第二个占位符是2,如果有第三个占位符,那么就是3,依次类推
- 执行query/update
ResultSet rs=ps.executeQuery();
executeUpdate 查询增删改用这个
executequery查询用这个
- 关闭con/st/rs链接
rs.close();
ps.close();
con.close();
- 先封装一个类里面封装一些变量,跟数据库的字段 数量 一样,有几个字段,外面封装就封装几个,可以不用跟数据库的字段相同。但是相同比较好一点,
- 创建接口 定义一些抽象方法 ,然后去创建实现类,实现这个接口里面的抽象方法,然后在实现类里面重写接口的方法,就可以查询到数据库的数据
如何通过jdbc实现我们的查询:
public static void selectAll(){
try {
tablename1 table=null;//用封装的tablename1类来拿到
List< tablename1> list =null;
Class.forName(driver);//加载驱动
Connection con=DriverManager.getConnection(url,username,password);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select *from tablename1");//ResultSet是个结果集
list=new ArrayList< tablename1 >();//要用到集合
while(rs.next()){//获取数据
table =new tablename1 ();
table.setId(0);
//这是类
table.setName(rs.getString("name"));
list.add(table);
}
for (tablename1 list2 : list) {//遍历集合
System.out.println(user2.getName());
}
rs.close();
st.close();
con.close();//关闭结果集
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
然后去主方法调用这个方法
public static void main(String[] args) {
selectAll();
}