【java学习】数据库的连接与使用
来源:互联网 发布:东北师范大学网络教育 编辑:程序博客网 时间:2024/06/14 17:51
1,数据库连接
1)dbcpconfig.properties
dbcpconfig.properties文件为使用jdbc连接数据库,具体参见:数据库连接
2)DBpool.java
package com.luo.dal;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import org.apache.commons.dbcp2.BasicDataSourceFactory;import javax.sql.DataSource;/** * 使用数据库连接池加大响应速度 * */public class DBPool { private static DataSource ds; private static Connection con = null; PreparedStatement prestmt = null; ResultSet rs = null; public static Connection getConnections() { con = null; try { con = ds.getConnection(); } catch (SQLException e) { System.out.println("获取数据库连接失败...."); e.printStackTrace(); } return con; } /** * 建立数据库连接 0成功 1失败 */ public int Connect() { try { if (con != null && con.isClosed() == false) return 0; try { InputStream in = DBPool.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"); Properties pro = new Properties(); pro.load(in); ds = BasicDataSourceFactory.createDataSource(pro); con = ds.getConnection(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return 0; } catch (Exception e) { e.printStackTrace(); return 1; } } /** * 查询 SQL语句执行方法 * * @throws SQLException * @sqlstr SQL语句 * @params 参数 **/ public ResultSet QuerySql(String sqlstr, Object... params) throws SQLException { // Create and execute an SQL statement that returns some data. prestmt = con.prepareStatement(sqlstr); for (int i = 0; i < params.length; i++) { prestmt.setObject(i + 1, params[i]); } rs = prestmt.executeQuery(); // Iterate through the data in the result set and display it return rs; } /** * 增删改 SQL语句执行方法 * * @throws SQLException * @sqlstr SQL语句 * @params 参数 **/ public int NonquerySql(String sqlstr, Object... params) throws SQLException { prestmt = con.prepareStatement(sqlstr); for (int i = 0; i < params.length; i++) { prestmt.setObject(i + 1, params[i]); } return prestmt.executeUpdate(); } public static void close(Connection con) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } /** * 关闭数据库连接 * * @throws SQLException */ public void Close() { try { if (rs != null) { rs.close(); } if (prestmt != null) { prestmt.close(); } if (con != null) { con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
3)SQL.java
package com.luo.dal;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class SOL { /** * 数据库连接字符串 */ // private final String sqlconstr = // "jdbc:sqlserver://127.0.0.1:1433;databaseName=XASW_TPH;user=sa;password=123456";//sa身份连接 private final String sqlconstr = "jdbc:sqlserver://127.0.0.1:1433;databaseName=XASW_TPH;user=noblegolf;password=noblegolf";// sa身份连接 Connection con = null; PreparedStatement prestmt = null; ResultSet rs = null; /** * 建立数据库连接 0成功 1失败 */ public int Connect() { try { if (con != null && con.isClosed() == false) return 0; // Establish the connection. System.out.println("begin connect."); Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(sqlconstr); System.out.println("connect success."); return 0; } catch (Exception e) { e.printStackTrace(); return 1; } } /** * 查询 SQL语句执行方法 * * @throws SQLException * @sqlstr SQL语句 * @params 参数 **/ public ResultSet QuerySql(String sqlstr, Object... params) throws SQLException { // Create and execute an SQL statement that returns some data. prestmt = con.prepareStatement(sqlstr); for (int i = 0; i < params.length; i++) { prestmt.setObject(i + 1, params[i]); } rs = prestmt.executeQuery(); // Iterate through the data in the result set and display it return rs; } /** * 增删改 SQL语句执行方法 * * @throws SQLException * @sqlstr SQL语句 * @params 参数 **/ public int NonquerySql(String sqlstr, Object... params) throws SQLException { prestmt = con.prepareStatement(sqlstr); for (int i = 0; i < params.length; i++) { prestmt.setObject(i + 1, params[i]); } return prestmt.executeUpdate(); } /** * 关闭数据库连接 * * @throws SQLException */ public void Close() { try { if (rs != null) { rs.close(); } if (prestmt != null) { prestmt.close(); } if (con != null) { con.close(); } } catch (SQLException e) { e.printStackTrace(); } }}
4)UserDao.java
package com.luo.dal;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import com.luo.bean.CharacterRelation;/** * DAO(Data Access Object)层 */public class UserDao { /** * 插入一个汉字字符 * @param string * @return */ public static int InsertCharacter(String character){ int Result = 0; DBPool dbp = new DBPool(); if (dbp.Connect() == 1) { System.out.println("数据库连接失败"); return 0; } String sql0 = "SELECT No FROM TB_Character WHERE Character = ?;"; try { ResultSet rs = dbp.QuerySql(sql0, character); int no = 0; while (rs.next()) { no = rs.getInt("no"); } if(0 == no){ sql0 = "insert into TB_Character(Character)values(?)"; Result = dbp.NonquerySql(sql0, character); } return Result; } catch (Exception e) { e.printStackTrace(); return 0; } finally { // 关闭数据库连接 dbp.Close(); } } /** * 查询一个汉字字符的key * @param string * @return */ public static int QueryCharacterKey(String s){ ResultSet Result = null; int no = 0; DBPool dbp = new DBPool(); if (dbp.Connect() == 1) { System.out.println("数据库连接失败"); return 0; } String sql0 = "SELECT No FROM TB_Character where Character=?;"; try { Result = dbp.QuerySql(sql0, s); while (Result.next()) { no = Result.getInt("No"); } return no; } catch (Exception e) { e.printStackTrace(); return 0; } finally { // 关闭数据库连接 dbp.Close(); } } /** * 插入一个汉字字符的关系 * @param string * @return */ public static int InsertCharacterRalation(int lastNo, int nextNo){ ResultSet resultSet = null; int result = 0; DBPool dbp = new DBPool(); if (dbp.Connect() == 1) { System.out.println("数据库连接失败"); return 0; } String sql0 = "SELECT No FROM TB_CharacterRelation WHERE LastNo = ? AND NextNo = ?;"; try { resultSet = dbp.QuerySql(sql0, lastNo, nextNo); int no = 0; while (resultSet.next()) { no = resultSet.getInt("No"); } if( 0 != no){ sql0 = "UPDATE TB_CharacterRelation SET Weight = Weight + 1 WHERE No = ?;"; result = dbp.NonquerySql(sql0, no); }else{ sql0 = "INSERT into TB_CharacterRelation( Weight, LastNo, NextNo) VALUES ( 1,?,?);"; result = dbp.NonquerySql(sql0, lastNo, nextNo); } return result; } catch (Exception e) { e.printStackTrace(); return 0; } finally { // 关闭数据库连接 dbp.Close(); } } /** * CharacterRelation中查找到weight>1的nextNo和LastNo * @param string * @return */ public static List<CharacterRelation> QueryKeyWord(){ ResultSet Result = null; DBPool dbp = new DBPool(); if (dbp.Connect() == 1) { System.out.println("数据库连接失败"); return null; } /** * * 后期处理。当最小的weight都大于1时,则所有weight-最小值weight */ String sql0 = "SELECT * FROM TB_CharacterRalation where weight>2;"; try { Result = dbp.QuerySql(sql0); List<CharacterRelation> ListCharacterRelation = new ArrayList<CharacterRelation>(); CharacterRelation cr = new CharacterRelation(); while (Result.next()) { cr.No = Result.getInt("No"); cr.LastNo = Result.getInt("LastNo"); cr.NextNo = Result.getInt("NextNo"); cr.Weight = Result.getInt("Weight"); ListCharacterRelation.add(cr); } return ListCharacterRelation; } catch (Exception e) { e.printStackTrace(); return null; } finally { // 关闭数据库连接 dbp.Close(); } }}
5)libs
下载地址:点击下载
2,使用
1)获取ResultSet中的值
String col1 = resultSet.getString("列名");
阅读全文
0 0
- 【java学习】数据库的连接与使用
- Java学习之路0810(建立与数据库的连接)
- java与数据库的连接
- java与数据库的连接
- Java与数据库的连接
- Java与数据库的连接
- Java 学习笔记07:使用Spring的Dao连接数据库
- Redis数据库与java连接并使用
- PHP PDO 数据库的连接与使用
- 用java连接数据库的学习记录
- java与数据库的所有连接方式
- java与mysql数据库的连接
- java与常用数据库的连接
- Java与数据库SQLSserver2005的连接问题解决
- java与数据库的连接实例
- java 与数据库的sql连接
- java与MySQL数据库的连接
- java与数据库MySQL的连接
- java 算法的精髓
- 结合redis设计与实现的redis源码学习-8.1-object.c(对象实现)
- 【BZOJ1003】物流运输(动态规划,最短路)
- 性能监视器perfmon
- Windows编程基础--第13节 MFC之图片控件
- 【java学习】数据库的连接与使用
- Vs2013打开项目时,一直处理等待状态,并显示“Microsoft Visual Studio正忙”的提示窗,处理方法
- 三种方法实现斐波那契数列
- 神经网络使用心得
- poj 1988 Cube Stacking(加权并查集 )
- Python编程:从入门到实践的动手试一试答案(第八章)
- hdu 4803B
- 矩阵链相乘--动态规划
- 2017