6、在MyJDBCUtils中加入update(String sql , Object[] args)方法
来源:互联网 发布:linux anaconda怎么用 编辑:程序博客网 时间:2024/05/17 08:37
1、在在MyJDBCUtils中加入update(String sql , Object[] args)的方法,用于更新数据库中的记录信息
2、update(String sql , Object[] args)方法,根据传进来的sql语句和参数去跟新数据库表的记录,增加了update(String sql , Object[] args)的MyJDBCUtils如下
package com.jdbc.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import com.jdbc.entity.User;public class MyJDBCUtils {private static Connection conn;private static PreparedStatement pstate;private static ResultSet rs;// 为了程序的更好的解耦合,利用Properties文件保存连接Mysql的配置文件private static Properties config = new Properties();/** * 使用static块,加载数据库的配置文件和数据库的驱动 */static {try {config.load(MyJDBCUtils.class.getClassLoader().getResourceAsStream("db.properties"));Class.forName(config.getProperty("driver"));} catch (Exception e) {throw new ExceptionInInitializerError(e);}}/** * 获取一个数据库的连接 * * @return */public static Connection getConnection() {Connection conn = null;try {conn = DriverManager.getConnection(config.getProperty("url"),config.getProperty("username"),config.getProperty("password"));} catch (SQLException e) {throw new RuntimeException("获取连接Mysql数据库连接失败");}return conn;}/** * 释放数据库的连接 * * @param conn * @param st * @param rs */public static void release(Connection conn, Statement st, ResultSet rs) {if (rs != null) {try {rs.close();} catch (Exception e) {throw new RuntimeException("ResultSet关闭异常");}rs = null;}if (st != null) {try {st.close();} catch (Exception e) {throw new RuntimeException("Statement关闭异常");}st = null;}if (conn != null) {try {conn.close();} catch (Exception e) {throw new RuntimeException("Connection关闭异常");}conn = null;}}/** * 根据User实体的id,到数据库里面取出对应的User记录,然后返回User记录 * * @param id */public static User findById(int id) {User user = null;try {String sql = "select * from user where id = ? ";conn = getConnection();pstate = conn.prepareStatement(sql);pstate.setInt(1, id);rs = pstate.executeQuery();if (rs.next()) {user = new User();String uname = rs.getString(rs.findColumn("uname"));int age = rs.getInt(rs.findColumn("age"));user.setAge(age);user.setId(id);user.setUname(uname);}} catch (Exception e) {throw new RuntimeException("在数据库中,查找id为" + id + "的User记录失败." + e);} finally {// 释放资源,关闭与数据库的连接release(conn, pstate, rs);}return user;}/** * 根据传进来的sql语句,来跟新数据库的表记录 * * @param sql * @param args */public static void update(String sql, Object[] args) {try {if (args.length < 0) {throw new RuntimeException("Object[] args的数组长度,不应该为空");}conn = getConnection();pstate = conn.prepareStatement(sql);for (int i = 0; i < args.length; i++) {pstate.setObject(i + 1, args[i]);}// 注意要调用这个方法pstate.executeUpdate();} catch (Exception e) {throw new RuntimeException("更新数据库中的记录失败" + e);} finally {// 释放资源,关闭与数据库的连接release(conn, pstate, rs);}}/** * 根据sql语句来更新数据库表中的记录 * * @param sql */public static void update(String sql) {try {conn = getConnection();pstate = conn.prepareStatement(sql);// 注意要调用这个方法pstate.executeUpdate();} catch (Exception e) {throw new RuntimeException("更新数据库中的记录失败" + e);} finally {// 释放资源,关闭与数据库的连接release(conn, pstate, rs);}}}
3、调用MyJDBCUtils更新数据库中id为1的记录,将其年龄改为14岁
package com.jdbc.utils;import org.junit.Test;import com.jdbc.entity.User;public class TestMyJDBCUtils {@Testpublic void testMyJDBCUtils() {User user = null;try {// 查询更新前的数据库记录信息user = MyJDBCUtils.findById(1);System.out.println(user);// 根据sql语句,更新数据库id为1的记录// 将其年龄age改为 14String sql = "update user set age = ? where id = ? ";Object[] args = { 14, 1 };MyJDBCUtils.update(sql, args);// 查询更新后的数据库记录信息,看有没有更新成功user = MyJDBCUtils.findById(1);System.out.println(user);} catch (Exception e) {throw new RuntimeException(e);}}}
4、程序的运行结果
4.1更改前的数据库信息
4.2更改后的数据库信息
4.3 程序的运行截图
1 0
- 6、在MyJDBCUtils中加入update(String sql , Object[] args)方法
- Java Main方法中String[] args 与 String args[]区别
- 5、在MyJDBCUtils中,增加根据User实体的id,去查找User的方法
- 在eclipse中如何输入main(String[] args)中的args
- java main(String args[])中args传值方法
- java main(String args[])中args传值方法
- Java中"Test(Object...args){}"方法声明的理解
- 关于java方法中Object... args参数的含义
- 关于java方法中Object... args参数的含义
- String.format(String format, Object… args)
- java中main()方法里面的String[] args;String args[]
- JAVA中main方法的参数String args[]和String []args
- java中main()方法里面的String[] args;String args[]
- new String.Format(Locale l,string format,Object args)中字符串格式化
- java中main方法的 (String[] args)的作用
- java中main方法的参数——String[] args
- java format(String format, Object... args) 解释
- C#中string.Format(string,object)方法
- android studio 签名,打包,混淆,多渠道打包
- XMPP的简单了解及使用(1)
- Android学习之跨进程通信安卓接口定义语言AIDL(二)
- ghjgk
- 零散
- 6、在MyJDBCUtils中加入update(String sql , Object[] args)方法
- Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明
- 告诉你Hadoop是什么
- TortoiseSVN文件夹及文件图标不显示解决方法
- 事件处理模型
- strStr
- WEKA使用教程(经典教程转载)
- strcop(),strcmp(),strcat(),strstr(),strchr()实现
- Android应用签名