JDBC操作数据库
来源:互联网 发布:石柱农村淘宝招聘 编辑:程序博客网 时间:2024/05/29 19:50
JDBC连接MySql,数据操作:
* 1、加载Mysql数据驱动(非必须步骤) Class.forName("com.mysql.jdbc.Driver");
* 2、创建数据库连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/erp", "数据库用户名", "数据库密码");
* 3、写sql语句:String sq = "";
* 4、创建执行sql的Statemen对象: Statement st = conn.createStatement();
* 5、执行sql:st.execute***(sql);
* a、查询:ResultSet rs = st.executeQuery(sql);
* while(rs.next()){}
* b、更新,删除,插入: int count = st.executeUpdate(sql);返回值是表示数据库操作成功的条数
* 1、加载Mysql数据驱动(非必须步骤) Class.forName("com.mysql.jdbc.Driver");
* 2、创建数据库连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/erp", "数据库用户名", "数据库密码");
* 3、写sql语句:String sq = "";
* 4、创建执行sql的Statemen对象: Statement st = conn.createStatement();
* 5、执行sql:st.execute***(sql);
* a、查询:ResultSet rs = st.executeQuery(sql);
* while(rs.next()){}
* b、更新,删除,插入: int count = st.executeUpdate(sql);返回值是表示数据库操作成功的条数
* 6、数据库关闭:conn.close();
static Statement st; public static void main(String[] args) { //先要获取连接,即连接到数据库 Connection conn = getConnection(); //insert(conn);//插入数据 query(conn);//查询数据 //update(conn);//更新数据 //delete(conn);//删除数据 } //查询 private static void query(Connection conn) { Statement st; try { String sql = "select * from t_user"; // 查询数据的sql语句 st = (Statement) conn.createStatement(); //创建用于执行静态sql语句的Statement对象,st属局部变量 ResultSet rs = st.executeQuery(sql); //执行sql查询语句,返回查询数据的结果集 System.out.println("最后的查询结果为:"); while (rs.next()) { // 判断是否还有下一个数据 // 根据字段名获取相应的值 int id = rs.getInt("id"); int age = rs.getInt("age"); String name = rs.getString("name"); String password = rs.getString("password"); String sex = rs.getString("sex"); //输出查到的记录的各个字段的值 System.out.println(id + " " + age + " " + name + " " + password + " " + sex); } conn.close(); //关闭数据库连接 } catch (Exception e) { System.out.println("查询数据失败"); } } //插入 private static void insert(Connection conn){ try { String sql = "insert into t_user(id,age,name,password,sex) values(1,10,'zhhangsan','111111','man')"; st = conn.createStatement();//创建用于执行sql语句的Statement对象 int count = st.executeUpdate(sql);//执行sql语句,返回的是更新数据的条数 System.out.println("往数据库中插入了 " + count + "条数据"); }catch (Exception e){ System.out.println(e.getMessage()); } } //删除 private static void delete(Connection conn){ try { //sql语句 String sql = "delete from t_user where id = 1"; //生成执行sql的Statement对象 st = conn.createStatement(); //执行sql语句 int count = st.executeUpdate(sql); System.out.println("删除了 " + count + " 条数据"); }catch (Exception e){ System.out.println(e.getMessage()); } } //修改 private static void update(Connection conn){ try { //写sql String sql = "update t_user set password='222222' where id=1"; //生成Statement对象 st = conn.createStatement(); //执行sql int count = st.executeUpdate(sql); System.out.println("更新了 " + count + " 条数据"); }catch (Exception e){ System.out.println(e.getMessage()); } } //数据库连接 private static Connection getConnection() { Connection conn = null; //创建用于连接数据库的Connection对象 try { Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动,非必须 conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/erp", "root", "root");// 创建数据连接 } catch (Exception e) { System.out.println("数据库连接失败" + e.getMessage()); } return conn; }
解释
1、为什么说Class.forName是非必须的
在java中只有类被使用的时候才会被加载(加载:读取字节码,执行static块)
而Class.forName的作用呢就是加载对应名称的类
所以,在这里Class.forName这里是是保证了在执行DriverManager.getConnection时,对应的com.mysql.jdbc.Driver已经在JVM中了
在JDBC4.0之后,DriverManager会自动去读取jdbc.Driver中的信息,同时getConnection会自动调用server provider(服务器供应商)去获取信息
即,说明了只要你的JDBC包含了驱动信息,是可以不用Class.forName这个方法
那么在什么情况会需要这个呢?
a、jdk1.6以下的版本
b、JDBC4.0以下的版本
PS:在研究使用idea+mave工具,顺便带上依赖包的:
0 0
- JDBC 及数据库操作
- JDBC操作数据库类
- JDBC操作数据库汇总
- jdbc操作mysql数据库
- jdbc数据库操作
- JDBC操作数据库--查询
- 使用JDBC操作数据库
- jdbc 操作mysql数据库
- JDBC操作数据库CRUD
- JDBC数据库操作
- Java-Jdbc 数据库操作
- JDBC操作数据库
- JDBC数据库的操作
- JDBC数据库操作
- Java JDBC数据库操作
- JDBC操作数据库
- JDBC操作数据库
- JDBC数据库操作
- Hibernate映射(一)------单向一对一主键关联
- Struts入门基础应用
- git 常用命令
- 你应当知道的Java牛人
- javascript获得客户端IP的方法
- JDBC操作数据库
- 苹果新的编程语言 Swift 语言进阶(一)--综述
- ISCC2014 Basic(基础关)Writeup
- java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
- 在老旧笔记本电脑上成功安装xubuntu
- 使用ant.jar进行文件zip压缩
- android 系统 转换 单位
- 《Linux设备驱动开发详解》-- 信号量的使用(semaphore)
- C++文件读写总结