java JDBC通用dao
来源:互联网 发布:python 支持中文 编辑:程序博客网 时间:2024/05/16 11:50
原来没有写文章的习惯 哎..
学习这种东西时间长如果不用就记得不怎么清楚了,复习一下最基本的东西.记起一下.
package com.util.dao.jdbcDao;import java.io.InputStream;import java.sql.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties;/** * jdbc DAO * @author Yanxinyu * */public class JdbcDao {public Connection conn = null; // 声明Connection对象的实例public Statement stmt = null; // 声明Statement对象的实例public PreparedStatement pstmt = null; // 声明PreparedStatement对象的实例public ResultSet rs = null; // 声明ResultSet对象的实例private static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// 定义保存数据库驱动的变量private static String dbUrl = "jdbc:sqlserver://10.10.10.141:1433;DatabaseName=myBlog";// 连接数据库地址(SqlServer2005)private static String dbUser = "sa";// 用户名private static String dbPwd = "123";// 密码/** * 默认的不带参数的构造函数 */public JdbcDao() {// try {//// Class.forName(dbClassName);// 注册驱动// } catch (ClassNotFoundException e) {// e.printStackTrace();// }}/** * 带属性文件名的构造方法 * * @param propertyFileName * 属性文件 */public JdbcDao(String propertyFileName) {Properties prop = new Properties();// 属性集合对象InputStream is = null;try {is = JdbcDao.class.getClassLoader().getResourceAsStream(propertyFileName);// 属性文件输入流// is = new FileInputStream("src/" + propertyFileName);prop.load(is);// 将属性文件流装载到Properties对象中is.close();// 关闭流dbClassName = prop.getProperty("dbClassName");dbUrl = prop.getProperty("dbUrl");dbUser = prop.getProperty("dbUser");dbPwd = prop.getProperty("dbPwd");} catch (Exception e) {System.out.println("属性文件 " + propertyFileName + " 打开失败!");}// try {// Class.forName(dbClassName);// 注册驱动// } catch (ClassNotFoundException e) {// e.printStackTrace();// }}/** * 创建数据库连接 * * @return 返回已连接的connection对象 */public static Connection getConnection() {Connection conn = null;try {Class.forName(dbClassName);// 1.注册驱动conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);// 2.建立与数据库的链接System.out.println("连接" + conn.getCatalog() + "数据库成功!");} catch (Exception ee) {ee.printStackTrace();}if (conn == null) {System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"+ dbClassName+ "\r\n链接位置:"+ dbUrl+ "\r\n用户/密码"+ dbUser + "/" + dbPwd);}return conn;}/** * 创建数据库连接 */public void getConnectionVoid() {Connection conn = null;try {Class.forName(dbClassName);// 注册驱动conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);// 建立与数据库的链接System.out.println("连接" + conn.getCatalog() + "数据库成功!");} catch (Exception ee) {ee.printStackTrace();}if (conn == null) {System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"+ dbClassName+ "\r\n链接位置:"+ dbUrl+ "\r\n用户/密码"+ dbUser + "/" + dbPwd);}this.conn = conn;}/** * 关闭数据库的连接 释放资源 */public void close() {try { // 捕捉异常try {if (rs != null) { // 当ResultSet对象的实例rs不为空时rs.close(); // 关闭ResultSet对象}} finally {try {if (stmt != null) { // 当Statement对象的实例stmt不为空时stmt.close(); // 关闭Statement对象}} finally {if (conn != null) { // 当Connection对象的实例conn不为空时conn.close(); // 关闭Connection对象}}}System.out.println("释放资源成功! 关闭数据库连接!");} catch (Exception e) {e.printStackTrace(System.err); // 输出异常信息}}/** * 执行查询语句 * * @param sql * sql语句 * @return 返回List<Map> map中的key键为列名 value为值 */public List<Map> executeQueryListMap(String sql) {List<Map> list = new ArrayList();try { // 捕捉异常// conn = getConnection(); //// 调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);// 创建语句// pstmt=conn.prepareStatement(sql);rs = stmt.executeQuery(sql);// 执行查询while (rs.next()) {Map map = new HashMap();rs.getString(1);for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++)map.put(rs.getMetaData().getColumnName(i).toLowerCase(), rs.getString(i));// 取得列名(转换成小写) 列的值 存入maplist.add(map); // 把每一行的列名和值存入list}} catch (SQLException ex) {System.err.println(ex.getMessage()); // 输出异常信息}return list; // 返回结果集对象 结果处理}/** * 执行修改 添加 删除 */public int executeSql(String sql) {int result = 0; // 定义保存返回值的变量try { // 捕捉异常// conn = getConnection(); //// 调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);result = stmt.executeUpdate(sql); // 执行更新操作} catch (SQLException ex) {result = 0; // 将保存返回值的变量赋值为0}return result; // 返回保存返回值的变量}}测试类
package com.util.dao.jdbcDao;import java.util.ArrayList;import java.util.List;import java.util.Map;/** * Jdbc测试类 * @author Yanxinyu * */public class JdbcTest {public static void main(String[] args) {JdbcDao jd=new JdbcDao();int returntmp=0;jd.getConnectionVoid();//查询//List<Map> list=jd.executeQueryListMap("select * from users");//for (Map map : list) {//System.out.println(map.get("id")+" "+map.get("loginid")+" "+map.get("loginpwd")+" "+map.get("name")+" "+map.get("qq")+" "+map.get("mail"));//}//修改//returntmp=jd.executeSql("update users set name='1yanxinyu' where id=68");//添加//returntmp=jd.executeSql("insert into users values ('yanxinyu02','yanxinyu','yanxinyu','11111','dsfad@ff.cc')");//删除//returntmp=jd.executeSql("delete from users where id=70");System.out.println(returntmp==1?"成功":"失败");jd.close();}}还有关于 statement 与preparestatement .的一些用法 这里就不记啦
- java JDBC通用dao
- 通用JDBC-Dao
- JDBC数据库通用DAO
- JDBC数据库通用DAO
- Spring-JDBC通用Dao
- Java反射结合JDBC写的一个通用DAO
- java通用DAO
- java dao通用方法
- JDBC操作DAO的通用类
- java jdbc封装为DAO
- jdbc随手笔记-对于dao通用方法的抽取
- JDBC连接数据库之编写通用的Dao(7)
- 通用DAO
- 通用DAO
- 通用Dao
- java 反射写的 通用DAO 类
- java封装JDBC通用类
- JAVA--JDBC建立通用数据库连接
- KC伺服舵机带参四方向Demo程序
- WebService CXF学习(入门篇1):CXF由来
- Linux 信号signal处理机制
- 学懂linux命令(1) linux很简单
- 使用js实现两点之间距离计算功能
- java JDBC通用dao
- 使用js实现大小写字母转换功能
- 两个类相互包含引用的问题--类前向声明
- WebService CXF学习(入门篇2):HelloWorld
- 自定义精灵类并为你的精灵设置攻击帧(指定开始帧)以及扩展Cocos2d源码的CCAnimation简化动画创建
- 【SSH】搭建
- java文件读取
- PHP多种序列化/反序列化的方法
- 信号笔记