关于jdbc
来源:互联网 发布:linux apache 加载php 编辑:程序博客网 时间:2024/05/17 18:27
jdbc是java连接数据库的一套API,完成如何将数据库中表的数据和内存中对象数据的转换。
jdbc是java连接数据库的一套标准。该标准定义了一系列的接口,这些接口由数据库厂商根据自己数据库的特点
提供实现类,用户根据接口调用数据库厂商的实现类,这样,无论连接什么数据库都是一套API.用户就可以屏蔽数据库的差异。
jdbc的操作步骤:
1、加载驱动 2、建立连接 3、执行SQL 4、关闭连接
package cn;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.gjt.mm.mysql.Driver;public class TeacherDao {/** * 从对象中取出属性值,变成数据库中的一条记录 * * @param t */public void add(Teacher t) {try {// 加载驱动Driver d = new Driver();// 建立连接// localhost连接数据库的IP地址,localhost表示本机// mydata 需要连接数据库名// root mysql的用户名// lovo mysql 的密码Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");System.out.println(con);// 执行SQL语句PreparedStatement ps = con.prepareStatement("insert into t_teacher(teacherName,edu,job) values(?,?,?)");// 设置占位符,从t所指向的对象中取出属性值,用来填充?(占位符)ps.setString(1, t.getName());ps.setString(2, t.getEdu());ps.setString(3, t.getJob());// 更新数据库,将数据写入数据库ps.executeUpdate();// 关闭数据库ps.close();con.close();} catch (Exception e) {// 显示出错信息e.printStackTrace();}}/** * 按主键删除 * * @param id */public void del(int id) {try {Driver d = new Driver();Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");PreparedStatement ps = con.prepareStatement("delete from t_teacher where id=?");ps.setInt(1, id);ps.execute();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}}/** * 按照id修改学历,职称 * * @param id * @param edu * 学历 * @param job * 职称 */public void update(int id, String edu, String job) {try {Driver d = new Driver();Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");PreparedStatement ps = con.prepareStatement("update t_teacher set edu=?,job=? where id=?");ps.setInt(3, id);ps.setString(1, edu);ps.setString(2, job);ps.execute();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}}/** * 根据主键查找对象 * * @param id * @return */public Teacher findById(int id) {Teacher t = new Teacher();try {Driver d = new Driver();Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");PreparedStatement ps = con.prepareStatement("select * from t_teacher where id=?");ps.setInt(1, id);// 得到结果集,结果集中就是查询所得的数据ResultSet rs = ps.executeQuery();// 将结果集指针移动到下一条记录。如果有下一条记录返回true,否则返回falseboolean isNext = rs.next();if (isNext == true) {// 判断结果集中是否有数据// 从数据库表中的id列中取出数据,设置在对象中的id属性中t.setId(rs.getInt("id"));t.setName(rs.getString("teacherName"));t.setEdu(rs.getString("edu"));t.setJob(rs.getString("job"));}rs.close();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}return t;}/** * 查询所有 * * @return */public List<Teacher> findAll() {List<Teacher> list = new ArrayList<Teacher>();try {Driver d = new Driver();Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");PreparedStatement ps = con.prepareStatement("select * from t_teacher");ResultSet rs = ps.executeQuery();// 判断是否下一条记录,如果有则循环,没有则退出循环while (rs.next()) {// 将数据库记录数据取出,变成对象的属性值Teacher t = new Teacher();t.setId(rs.getInt("id"));t.setName(rs.getString("teacherName"));t.setEdu(rs.getString("edu"));t.setJob(rs.getString("job"));// 将封装好的数据库数据的对象加入集合list.add(t);}rs.close();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}return list;}/** * 按姓名模糊查询 * * @param name * @return */public List<Teacher> findByName(String name) {List<Teacher> list = new ArrayList<Teacher>();try {Driver d = new Driver();Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?characterEncoding=utf-8","root", "lovo");PreparedStatement ps = con.prepareStatement("select * from t_teacher where teacherName like ?");ps.setString(1, "%" + name + "%");ResultSet rs = ps.executeQuery();while (rs.next()) {Teacher t = new Teacher();t.setId(rs.getInt("id"));t.setName(rs.getString("teacherName"));t.setEdu(rs.getString("edu"));t.setJob(rs.getString("job"));list.add(t);}rs.close();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}return list;}public static void main(String[] args) {TeacherDao dao = new TeacherDao();dao.add(new Teacher("方正", "大专", "教授"));// 测试新增dao.del(8);// 测试删除dao.update(4, "本科", "大和尚");// 测试修改Teacher t = dao.findById(1);// 测试根据id查找System.out.println(t.getId() + " " + t.getName() + " " + t.getEdu()+ " " + t.getJob());List<Teacher> list = dao.findAll();// 测试查找全部数据for (Teacher t2 : list) {System.out.println(t2.getId() + " " + t2.getName() + " "+ t2.getEdu() + " " + t2.getJob());}List<Teacher> list1 = dao.findByName("方");// 测试按姓名模糊查询for (Teacher t1 : list) {System.out.println(t1.getId() + " " + t1.getName() + " "+ t1.getEdu() + " " + t1.getJob());}}}class Teacher {/** id */private int id;/** 老师姓名 */private String name;/** 学历 */private String edu;/** 职称 */private String job;public Teacher( String name, String edu, String job) {super();this.name = name;this.edu = edu;this.job = job;}public Teacher() {super();}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;}public String getEdu() {return edu;}public void setEdu(String edu) {this.edu = edu;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}}
- 关于JDBC
- 关于jdbc
- 关于JDBC
- 关于jdbc
- 关于JDBC
- 关于JDBC一些下载
- 关于jdbc的驱动
- 关于JDBC的使用
- 关于JDBC的问题
- 关于jdbc(转)
- 关于jdbc驱动
- 关于JDBC事务处理
- 关于JDBC的批处理
- JDBC 关于通用查询
- java基础:关于JDBC
- 关于 JDBC 自动提交
- 关于JDBC链接问题
- jsp 关于jdbc驱动;
- select * from dictionary; oracle字典表
- linux centos 开机自启动服务
- 关于<<和>>重载操作符 返回值的问题
- Windows 7下多点触摸API
- 串的块链存储
- 关于jdbc
- IOS简单调用Google地图
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- GCT学习有感----关于交流沟通
- 在多标签浏览器中,当前页面弹出新的小的窗口
- windows 7多点触摸开发
- 黑马程序员--java1.5新特性
- Centos 6.3 下的Xen的安装
- 黑马程序员_day15_多线程3