java链接数据库的那些事

在长期使用数据库的童鞋,你有没有想想的你的数据库链接是否合理,最优。

个人的一点学习心得,分享下

 1、先看一个最简单的mysql数据库的链接,代码如下:

	/**
	 * 一个简单的链接
	 */
	public static Connection getConn(){
		String url = "jdbc:mysql://192.168.0.1:3306/yourdatabasename?characterEncoding=utf8";
		String password = "123456";
		String user = "root";
		String driver = "com.mysql.jdbc.Driver";
		Connection conn = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return conn;
	}
	/**
	 * 一个简单的测试
	 */
	public static void testSQLConn(){
		Connection conn = SQLCONNUtil.getConn();
		ResultSet rs = null;
		try {
			Statement st = conn.createStatement();
			rs = st.executeQuery("select * from tablename limit 3;");
			while (rs.next()){
				System.out.println(rs.getObject(1)+"\t"+rs.getObject(2));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if(rs != null){
					rs.close();
					rs = null;
				}
				if(conn != null){
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

问题1:如果写完了上面的代码,当你运行的时候,发现报错有些driver类找不到,那就看看你的工程,你的mysql数据库链接包有没有导入工程,本空间里有对应mysql和mssql的链接jar包,都是官网上下的,可以放心使用,或者你自己去官网上下载也行。(Java语言通过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员﹑数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供两种API,分别是面向开发人员的API和面向底层的JDBC驱动程序API,底层主要通过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的连接。所以使用不同的数据库需要引入不同数据库厂商提供的链接jar包)

问题2:上面的代码是不是可以改进下?如果你的工程已经打包上传至服务器,但是发现数据库名称不一致,总不能改了类,在上传一次吧,这样太麻烦,不够灵活。在你的工程里引入config.properties文件,然后把对应的信息写入文件,在我们使用数据库时直接读config.properties即可,这样对于修改也就变得相对简单了。(读取配置文件,可以参考下面的文章)

问题3:既然数据库是这么常用的工具,是不是应该有人已经给我们提供数据库操作的各种类?是的,hibernate,Spring都有做这些事情,不过这些框架都比较大,引入的同时必然会引入一些额外的东西,还有就是你自己要扩展自己的知识,倚天剑削铁如泥,用好了可以杀敌于无形,用不好也会伤己的,如果有大的需求,那就认真学习下,在使用了。

问题4:我们使用数据库的一般步骤是:(1)取得与数据库的链接;(2)发出sql语句;(3)断开链接;当我们做一些造作时,频繁的链接断开造作是对数据库资源的浪费,如果我们能够建一个连接池,在我们使用之处,已经做好了一些链接,我们使用的时候直接从连接池中取,用完了在放回去,这样效率就会得到提高。现在应用比较多的连接池有:c3p0,DBCP,BoneCP (据说BoneCP 比前两个平均快很多)这个有兴趣的可以去试试。

问题5:java链接msslq2008,上面是链接mysql相关的,下面给一个简单的链接mssql2008的例子,数据库链接的jar包,jdbc4.jar可以去我的空间里下载,代码如下:

	/**
	 * 通过Microsoft JDBC驱动获得数据库连接
	 * @return Connection
	 */
	public static void getConnection() {
		Connection conn = null;
		Statement stmt;
		ResultSet rs;
		String url = "jdbc:sqlserver://10.11.5.250:1433;DatabaseName=yourdatabase";
		String uid = "root";
		String pwd = "123456";
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			conn = DriverManager.getConnection(url, uid, pwd);
			stmt = conn.createStatement();
			StringBuilder sql = new StringBuilder("select * from yourtable");
			rs = stmt.executeQuery(sql.toString());
			while (rs.next()){
				System.out.println(rs.getObject(1)+"\t"+rs.getObject(2));
			}
		} catch (ClassNotFoundException ex) {
			ex.printStackTrace();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return ;
	}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值