Java操作MySQL应用实例
来源:互联网 发布:djvu阅读器 知乎 编辑:程序博客网 时间:2024/04/28 16:08
本案例树JDBC做了轻型封装,主要目的是方便用户查询数据库后得到的就是一张表对象 ,此表与数据库中的表有对应关系
1.定义接口类,为了方便以后扩展开发
package com.zhaochao.dba;import java.sql.Connection;public interface iConn {Connection getConn() throws Exception;}
2.定义连接MySQL类,实现iConn接口
此类主要是为了获得MySQL连接
package com.zhaochao.dba;import java.sql.Connection;import java.sql.DriverManager;public class MySQLConn implements iConn {private static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;private static final String DBURL = "jdbc:mysql://localhost:3306/zhaochao" ;private static final String DBUSER = "root" ;private static final String DBPASS = "admin";private Connection conn=null;@Overridepublic Connection getConn() throws Exception {// TODO Auto-generated method stubtry {Class.forName(DBDRIVER);this.conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);} catch (Exception e) {// TODO Auto-generated catch blockthrow e;}return this.conn;}}
3.定义表头类
此类与数据库的表头相对应,主要是获得数据库的表的信息
package com.zhaochao.dba;public class TableHead {//数据库中表名private String tableName;//表中列数量private int tableColumn;//表中列名private String [] tableColumnName;public String getTableName() {return tableName;}public void setTableName(String tableName) {this.tableName = tableName;}public int getTableColumn() {return tableColumn;}public void setTableColumn(int tableColumn) {this.tableColumn = tableColumn;}public String getTableColumnName(int i) {return tableColumnName[i];}public void setTableColumnName(String tableColumnName,int i) {this.tableColumnName[i-1] = tableColumnName;}public TableHead(int count){this.tableColumn=count;this.tableColumnName=new String [count];}}
4.定义表中字段类
此类与数据库中的一个字体相对应
package com.zhaochao.dba;public class TableContent {//表字段内容private String [] tableContent;public TableContent(int Count){this.tableContent=new String[Count];}public String getTableContent(int i) {return tableContent[i];}public void setTableContent(String tableContent ,int i) {this.tableContent[i-1] = tableContent;}}
5.定义表类
此类与数据库中的一张表相对应,主要有表头和字段组成
package com.zhaochao.dba;import java.util.ArrayList;import java.util.List;public class Table {//表中列数量private int coloumnCount;//表头信息private TableHead tablehead;//表个字段private List<TableContent> content;//向表中增加字段public void addContent(TableContent content){this.content.add(content);}//表中字段大小public int contentSize(){return this.content.size();}//表列数public int getColoumnCount() {return coloumnCount;}public void setColoumnCount(int coloumnCount) {this.coloumnCount = coloumnCount;}public TableHead getTablehead() {return tablehead;}public void setTablehead(TableHead tablehead) {this.tablehead = tablehead;}public List<TableContent> getContent() {return content;}public void setContent(List<TableContent> content) {this.content = content;}public Table(int Count){this.coloumnCount=Count;this.content=new ArrayList<TableContent>();}//得到表中第i个字段public TableContent getTableContent(int i){return this.content.get(i);}}
6.定义MySQL类
此类完成对数据库的具体操作
package com.zhaochao.dba;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ParameterMetaData;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;;public class MySQL {private Connection conn;private PreparedStatement ps;private ResultSet rs;private ResultSetMetaData rsData;public MySQL(iConn icon) throws Exception{try {this.conn=icon.getConn();} catch (Exception e) {// TODO Auto-generated catch blockthrow e;}}//获取表public Table ExecuteSQL(String sql,String [] paramters) throws SQLException{this.ps=this.conn.prepareStatement(sql);if(paramters!=null){for(int i=1;i<=paramters.length;i++){this.ps.setString(i, paramters[i-1]);}}this.rs=this.ps.executeQuery();TableHead tableHead=null;Table table=null;this.rsData=this.rs.getMetaData();int columnCount=this.rsData.getColumnCount();table=new Table(columnCount);tableHead=new TableHead(columnCount);tableHead.setTableName(this.rsData.getTableName(1));for(int i=1;i<=this.rsData.getColumnCount();i++){tableHead.setTableColumnName(this.rsData.getColumnName(i), i);}//设置表头table.setTablehead(tableHead);while(this.rs.next()){TableContent content=new TableContent(columnCount);for(int i=1;i<=columnCount;i++){content.setTableContent(this.rs.getString(i), i);}//加入字段table.addContent(content);}return table;}private void close(){if(conn!=null){try {conn.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}if(ps!=null){try {ps.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}if(rs!=null){try {rs.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}}}
7.测试
package com.zhaochao.dba;public class Main {public static void main(String [] rags){//String sql="select id,username from user where id>? and id<? limit 2,3 ";String sql="select * from user";String [] paramters=null;//String [] paramters={"2","7"};//mysql> select * from user;//+------+----------+------------+//| id | username | userpasswd |//+------+----------+------------+//| 1 | 赵超 | zhaochao |//| 2 | 赵云 | zhaoyun |//| 3 | 马超 | machao |//| 4 | 关羽 | guanyu |//| 5 | 张飞 | zhangfei |//| 6 | 黄忠 | huangzhong |//| 7 | 吕布 | lvbu |//| 8 | 刘备 | luibei |//+------+----------+------------+//8 rows in set (0.00 sec)// 从id为 3 4 5 6 中第2个开始取3个 所以为 5 6 limit编号从0开始 iConn iconn=new MySQLConn();MySQL mysql=null;Table table=null;try { mysql=new MySQL(iconn); table=mysql.ExecuteSQL(sql, paramters);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//输出表名System.out.println(table.getTablehead().getTableName());//输出表头for(int i=0;i<table.getColoumnCount();i++){System.out.print(table.getTablehead().getTableColumnName(i)+" ");}//输出表中内容for(int k=0;k<table.contentSize();k++){System.out.println(" ");for(int j=0;j<table.getColoumnCount();j++){System.out.print(table.getContent().get(k).getTableContent(j)+" ");}}}}
8.结果
结果1
userid username userpasswd 1 赵超 zhaochao 2 赵云 zhaoyun 3 马超 machao 4 关羽 guanyu 5 张飞 zhangfei 6 黄忠 huangzhong 7 吕布 lvbu 8 刘备 luibei结果2
userid username 5 张飞 6 黄忠
- Java操作MySQL应用实例
- Java操作Mysql实例
- Java]操作Mysql实例 笔记
- java操作mysql数据库实例
- php mysql 应用操作数据库实例
- java与Mysql基础应用实例
- java连接mysql实例及数据库操作
- mysql 事务应用实例
- MySQL事务应用实例
- mysql操作实例
- MySQL数据库操作实例
- 数据库操作:java连接MYSQL实例代码演示
- java操作mysql实例 让代码跑起来
- vs2010操作本地access数据库和远程操作Mysql数据的应用实例
- json的操作应用实例
- java JSplitPane应用实例
- Java反射应用实例
- Java Compiler 应用实例
- Oracle 临时表空间的增删改查
- Codeforces Round #201 (Div. 2)
- cocos2dx 以box2d做个小车test
- struts2+easyui+datagrid的使用方法
- HTML5知识:KineticJS里面的Canvas tango形状!
- Java操作MySQL应用实例
- JQuery blockUI 的使用方法
- 读入两个小于100的正整数A和B,计算A+B.A和B的每一位数字由对应的英文单词给出.
- 用我自己的理解内存映射文件
- 百度面试
- ubantu 命令行 sh 无法找到 /bin/java
- 用poll 实现并发服务器
- STL set 用法之 —— 自定义结构体
- hadoop1.2.1编译eclipse插件