Java 实现Gbase数据库增删改查功能2
生活随笔
收集整理的这篇文章主要介绍了
Java 实现Gbase数据库增删改查功能2
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Java 实现Gbase数据库增删改查功能2
增加了格式化,便于查看
package com.advance.JDBC;import org.apache.log4j.Logger; import org.apache.storm.command.list;import java.sql.*; import java.util.*;public class Connect_GBase {private static Logger logger = Logger.getLogger(Connect_GBase.class);//三大核心接口private static Connection conn = null;private static PreparedStatement pstmt = null;private static ResultSet rs = null;public static Connection connectGBase() {//加载MySql的驱动类try {Class.forName("com.gbase.jdbc.Driver");} catch (ClassNotFoundException e) {logger.error("找不到驱动程序类 ,加载驱动失败!");e.printStackTrace();}//URLString url = "jdbc:gbase://XXX.XXX.XXX.XXX:5258/testdb?characterEncoding=utf8";//账号String username = "root";//密码String password = "gbase8a";try {conn = DriverManager.getConnection(url,username,password);} catch (SQLException e) {logger.error("数据库连接失败!");e.printStackTrace();}return conn;}//关闭数据库连接public static void closeConnection(){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if(pstmt!=null){try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}/*** @Author xiaomei* @Description 将ResultSet转换成List* @Date 2019/2/13 10:31* @Param [rs]* @return java.util.List**/public static List resultSetToList(ResultSet rs,String columnName) throws java.sql.SQLException {if (rs == null)return Collections.EMPTY_LIST;ResultSetMetaData md = rs.getMetaData(); //得到结果集(rs)的结构信息,比如字段数、字段名等int columnCount = md.getColumnCount(); //返回此 ResultSet 对象中的列数List list = new ArrayList(); // Map rowData; // while (rs.next()) { // // rowData = new HashMap(columnCount); // for (int i = 1; i <= columnCount; i++) { // rowData.put(md.getColumnName(i), rs.getObject(i)); // System.out.println(rowData.get("id") + "_" + rowData.get("name") + "_" + rowData.get("age") ); // } // if(columnName==null) { // list.add(rowData); // }else { // list.add(rowData.get(columnName)); // } // }while (rs.next()) {System.out.println(rs.getString("id") + "_" + rs.getString("name"));}return list;}/*** @Author xiaomei* @Description 查询方法* @Date 2019/2/13 10:32* @Param [sql]* @return java.sql.ResultSet**/public static ResultSet query(String sql) throws SQLException, ClassNotFoundException {conn = connectGBase();pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();return rs;}/*** @Author xiaomei* @Description 支持insert,delete,update操作* 参数按顺序和占位符对应传入* demo:* update("update aa set name = ? where id = ?",new Object[]{"7","1"});update("insert into aa (id,name) values (?,?)",new Object[]{"5","6"});update("delete from aa where id = ?",new Object[]{"5"});* @Date 2019/2/13 10:32* @Param [sql, values]* @return void**/public static void update(String sql,Object []values) throws SQLException, ClassNotFoundException {//获取数据库链接conn=connectGBase();try {//预编译pstmt=conn.prepareStatement(sql);//获取ParameterMetaData()对象ParameterMetaData pmd=pstmt.getParameterMetaData();//获取参数个数int number=pmd.getParameterCount();//循环设置参数值for (int i = 1; i <=number; i++) {pstmt.setObject(i, values[i-1]);}pstmt.executeUpdate();System.out.println("执行成功");} catch (SQLException e) {e.printStackTrace();}}/*** @Author xiaomei* @Description 输出查询结果* @Date 2019/2/13 10:33* @Param [rs]* @return void**/public static void output(ResultSet rs) throws SQLException {ResultSetMetaData md = rs.getMetaData(); //得到结果集(rs)的结构信息,比如字段数、字段名等int columnCount = md.getColumnCount();while(rs.next()){StringBuffer sb = new StringBuffer();for (int i = 1; i <= columnCount; i++) {sb.append(rs.getObject(i)+" ");}logger.debug(sb);System.out.println(sb);}while (rs.next()) {System.out.println(rs.getString("name"));}}public static void main(String[] args) throws SQLException, ClassNotFoundException {//update("update aa set name = ? where id = ?",new Object[]{"7","1"}); // update("insert into COMPANY (id,name,age , address, salary) " + // "values (?,?,?,?,?)",new Object[]{"2","lisi","4","6","5"});//update("delete from aa where id = ?",new Object[]{"5"});ResultSet rs = query("select * from COMPANY ");List<Map<String,Object>> result = resultSetToList(rs,"name");output(rs);closeConnection();}// 建表语句: // CREATE TABLE COMPANY( // ID int , // NAME VARCHAR(40) NOT NULL, // AGE INT NOT NULL, // ADDRESS CHAR(50), // SALARY DECIMAL(10,2) //);}总结
以上是生活随笔为你收集整理的Java 实现Gbase数据库增删改查功能2的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 烟袋斜街-后海,印象已模糊
- 下一篇: 推荐5个优秀的Java开源项目,初学者友