博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java数据库访问优化(mysql为例)
阅读量:3904 次
发布时间:2019-05-23

本文共 3371 字,大约阅读时间需要 11 分钟。

1.编写属性文件

为了便于后期维护,在编写DBUtil工具类之前,通常将连接的数据库的参数信息保存在属性文件中。

在项目的根目录下创建一个config目录,并添加一个属性文件mysql.properties,该文件是以"键-值"对形式来保存连接Oracle数据库的配置信息,内容格式如下:

driver= ...url= ...user= ...password= ...

为了读取属性文件中的配置信息,需要编写一个Config类,在该类中通过java.util.Properties类的get()方法来获取指定"键"所对应的"值"。

代码如下:

package practice;import java.io.*;import java.util.*;public class Config {	private static Properties p=null;	static {		try {			p =new Properties();			p.load(new FileInputStream("配置文件存在路径mysql.properties"));		}catch(Exception e) {			e.printStackTrace();		}	}	public static String getValue(String key){		return p.getProperty(key).toString();	}}

 2.编写DBUtil类

主要实现数据库连接,释放资源,查询,增删改操作。

代码如下:

package practice;import java.sql.*;public class DBUtil {		Connection conn=null;		PreparedStatement pstmt=null;		ResultSet rs=null;		/*得到数据库连接*/		public Connection getConnection() throws Exception{			String driver=Config.getValue("driver");			String url=Config.getValue("url");			String user=Config.getValue("user");			String pwd=Config.getValue("password");			System.out.println("driver :"+driver);			System.out.println("url :"+url);			System.out.println("user :"+user);			System.out.println("pwd :"+pwd);			try{				Class.forName(driver);				conn=DriverManager.getConnection(url,user,pwd);				return conn;			}catch(Exception e) {				throw new SQLException("驱动错误或连接错误!");			}					}		/*释放资源*/		public void closeAll() {			if(rs!=null) {				try {					rs.close();				}catch(Exception e) {					e.printStackTrace();				}			}			if(pstmt!=null) {				try {					pstmt.close();				}catch(Exception e) {					e.printStackTrace();				}			}			if(conn!=null) {				try {					conn.close();				}catch(Exception e) {					e.printStackTrace();				}			}		}		/*执行SQL语句,可以进行查询*/		public ResultSet executeQuery(String preparedSql ,String[] param) {			try {				pstmt=conn.prepareStatement(preparedSql);				if(param!=null) {					for (int i=0;i

3.使用DBUtil类

代码如下:

package practice;import java.sql.*;public class DBDmo {	public static void main(String args[]) {		String selectSql="select id,username,password,sex from userdetails";		String insertSql="insert into userdetails(id,username,password,sex) values(?,?,?,?)";		String updateSql="update userdetails set password=? where username=?";		String deleteSql="delete from userdetails where username=?";		DBUtil db=new DBUtil();		try {			//连接数据库			db.getConnection();			//查询并显示原来的数据			ResultSet rs=db.executeQuery(selectSql, null);			System.out.println("----原来数据----");			while(rs.next()) {				System.out.println("行" +rs.getRow() +":" + rs.getInt(1)+ "\t" 			+rs.getString(2)+"\t"+rs.getString(3)+"\t" +(rs.getInt(4)==1? "男":"女"));			}			System.out.println("------------");			//执行添加			int count=db.executeUpdate(insertSql, new String[] {"9","Rose","123456","0"});			System.out.println("添加"+count+"行!");			count=db.executeUpdate(updateSql, new String[] {"686868","Tom"});			System.out.println("修改"+count+"行!");			//执行删除			count=db.executeUpdate(deleteSql,new String[] {"lisi"});			System.out.println("删除"+count+"行!");			//查询并显示更新后的数据			rs=db.executeQuery(selectSql, null);			System.out.println("----更新后的数据-----");			while(rs.next())			{				System.out.println("行"+rs.getRow()+":"+rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"						+(rs.getInt(4)==1? "男":"女"));			}			System.out.println("---------\n");		}catch(Exception e) {			e.printStackTrace();		}finally {			db.closeAll();		}	}}

 

转载地址:http://kuoen.baihongyu.com/

你可能感兴趣的文章
深拷贝与浅拷贝
查看>>
WinForm 打开txt文件
查看>>
WinForm 实现日志记录功能
查看>>
WinForm 读取照片文件
查看>>
WinForm ComboBox不可编辑与不可选择
查看>>
WinForm textbox控件设置为不可编辑
查看>>
winForm ImageList图像控件使用
查看>>
WinForm TabControl标签背景色
查看>>
Winform TabControl标签美化
查看>>
打印日志类
查看>>
WinForm 获取文件/文件夹对话框
查看>>
PyCharm打包.exe遇到的问题
查看>>
winform中添加Windows Media Player
查看>>
345. 反转字符串中的元音字母
查看>>
67. 二进制求和
查看>>
125. 验证回文串
查看>>
168. Excel表列名称
查看>>
400. 第N个数字
查看>>
209. 长度最小的子数组
查看>>
145. 二叉树的后序遍历
查看>>