BaseDao
- package com.pb.dao;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- public class BaseDao {
- protected Connection conn;
- protected PreparedStatement ps;
- protected ResultSet rs;
- public Connection getConnection() {
- String driver = "oracle.jdbc.driver.OracleDriver";
- String url = "jdbc:oracle:thin:@localhost:1521:orcl";
- String username = "accp";
- String password = "accp";
- try {
- Class.forName(driver);
- conn = DriverManager.getConnection(url, username, password);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return conn;
- }
- public void closeConnection() {
- if (rs != null) {
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (ps != null) {
- try {
- ps.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public ResultSet executeQuery(String sql,Object [] params){
- getConnection();
- try {
- ps=conn.prepareStatement(sql);
- if(params!=null){
- for (int i = 0; i < params.length; i++) {
- ps.setObject(i+1, params[i]);
- }
- }
- rs=ps.executeQuery();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return rs;
- }
- public int executeUpdate(String sql,Object [] params){
- int updateNum=-1;
- getConnection();
- try {
- ps=conn.prepareStatement(sql);
- if(params!=null){
- for (int i = 0; i < params.length; i++) {
- ps.setObject(i+1, params[i]);
- }
- }
- updateNum=ps.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- }finally{
- this.closeConnection();
- }
- return updateNum;
- }
- }
tableDao仍然是Dao层
- package com.pb.dao;
- import java.util.List;
- import java.util.Map;
- public interface TableDao {
- public List<String> getTableName();
- public Map<String, String> getCols(String tableName);
- }
tableDaoImpl实现数据访问
- package com.pb.dao.impl;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import com.pb.dao.BaseDao;
- import com.pb.dao.TableDao;
- public class TableDaoImpl extends BaseDao implements TableDao {
- //当前用户下的所有表名
- @Override
- public List<String> getTableName() {
- List<String> tableNameList = null;
- try {
- String sql = "select * from user_tables";
- Object[] params = {};
- ResultSet rs = super.executeQuery(sql, params);
- if (rs != null) {
- tableNameList = new ArrayList<String>();
- while (rs.next()) {
- tableNameList.add(rs.getString("TABLE_NAME"));
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- super.closeConnection();
- }
- return tableNameList;
- }
- //指定表名的所有字段
- @Override
- public Map<String, String> getCols(String tableName) {
- Map<String, String> map=null;
- try {
- String sql="select * from user_tab_cols where table_name=?";
- Object [] params={tableName};
- ResultSet rs=super.executeQuery(sql, params);
- if(rs!=null){
- map=new HashMap<String, String>();
- while(rs.next()){
- map.put(rs.getString("COLUMN_NAME"), rs.getString("DATA_TYPE"));
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- super.closeConnection();
- }
- return map;
- }
- }
业务层biz
- TableService接口
- package com.pb.biz;
- import java.util.List;
- import java.util.Map;
- public interface TableService {
- public List<String> getTableName();
- public Map<String, String> getCols(String tableName);
- }
- TableService接口业务层实现
- package com.pb.biz.impl;
- import java.util.List;
- import java.util.Map;
- import com.pb.biz.TableService;
- import com.pb.dao.TableDao;
- import com.pb.dao.impl.TableDaoImpl;
- public class TableServiceImpl implements TableService {
- private TableDao tableDao=new TableDaoImpl();
- @Override
- public List<String> getTableName() {
- return tableDao.getTableName();
- }
- @Override
- public Map<String, String> getCols(String tableName) {
- return tableDao.getCols(tableName);
- }
- }
测试类
- package com.pb.test;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.List;
- import java.util.Map;
- import java.util.Scanner;
- import com.pb.biz.TableService;
- import com.pb.biz.impl.TableServiceImpl;
- public class DemoTest {
- public static TableService tableService=new TableServiceImpl();
- public static Scanner input=new Scanner(System.in);
- public static void main(String[] args) {
- Map<String, String> map;
- //类名
- String className=null;
- //获取accp用户下的全部表名
- List<String> tableNameList=getTableName();
- System.out.println("请输入你需要的表名");
- String tableName=input.next().toUpperCase();
- boolean flag=false;
- for (String s : tableNameList) {
- if(s.contains(tableName)){
- flag=true;
- }
- }
- if(flag==true){
- System.out.println("表已经找到表名为"+tableName);
- //输出表名并生成类名
- className ="public class " + tableName.substring(0,1)+tableName.substring(1).toLowerCase()+" { \n";
- //要建立的包名
- System.out.println("请输入要建立的包名:");
- String pack="package "+input.next()+" ;\n";
- //获取表中的字段
- map =tableService.getCols(tableName);
- //根据表名生成文件名
- String filename=tableName.substring(0,1)+tableName.substring(1).toLowerCase()+".java";
- //找到表中的字段
- map=getTableCols(tableName);
- //建立属性字符串
- String proerty=getProerty(map);
- //无参数构造方法
- String con=getconString(tableName);
- //get方法
- String getter=getMethod(map);
- //setter方法
- String setter=setMethod(map);
- //生成总字符串
- String str=pack+className+proerty+con+getter+setter+"}";
- //写入文件
- File file=new File("d:"+File.separator+filename);
- FileOutputStream fos=null;
- try {
- fos=new FileOutputStream(file);
- fos.write(str.getBytes());
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- try {
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }else{
- System.out.println("没有这个表"+tableName);
- }
- }
- //当前用户下所有表名
- public static List<String> getTableName(){
- return tableService.getTableName();
- }
- //字段
- public static Map<String,String> getTableCols(String tableName){
- return tableService.getCols(tableName);
- }
- //无参数构造方法
- public static String getconString(String tableName){
- String conString=" \n // 无参数构造方法\n public "+tableName.substring(0,1)+tableName.substring(1).toLowerCase()+"(){\n\n}\n";
- return conString;
- }
- //将字段转为字符串属性
- public static String getProerty(Map<String,String> map){
- String str="// Fields \n";
- for(String s:map.keySet()){
- if(map.get(s).equals("NUMBER")){
- str+=" \n private " +"int "+s.toLowerCase()+";\n";
- }else if(map.get(s).equals("VARCHAR2")){
- str+=" \n private " +"String "+s.toLowerCase()+";\n";
- }else if(map.get(s).equals("DATE")){
- str+=" \n private " +"Date "+s.toLowerCase()+";\n";
- }else{
- str+=" \n private " +map.get(s)+" "+s.toLowerCase()+";\n";
- }
- }
- return str;
- }
- //get方法
- //将字段转为get方法
- public static String getMethod(Map<String,String> map){
- String str="//getter方法\n";
- for(String s:map.keySet()){
- if(map.get(s).equals("NUMBER")){
- str+=" \n public " +"int "+"get"+s.substring(0,1)+s.substring(1).toLowerCase()+"(){\n return this."+s.toLowerCase()+"; \n}";
- }else if(map.get(s).equals("VARCHAR2")){
- str+=" \n public " +"String "+"get"+s.substring(0,1)+s.substring(1).toLowerCase()+"(){\n return this."+s.toLowerCase()+"; \n}";
- }else if(map.get(s).equals("DATE")){
- str+=" \n public " +"Date "+"get"+s.substring(0,1)+s.substring(1).toLowerCase()+"(){\n return this."+s.toLowerCase()+"; \n}";
- }else{
- str+=" \n public " +map.get(s)+" "+"get"+s.substring(0,1)+s.substring(1).toLowerCase()+"(){\n return this."+s.toLowerCase()+"; \n}";
- }
- }
- return str;
- }
- //set方法
- //将字段转为set方法
- public static String setMethod(Map<String,String> map){
- String str="\n//setter方法\n";
- for(String s:map.keySet()){
- if(map.get(s).equals("NUMBER")){
- str+=" \n public void " +"set"+s.substring(0,1)+s.substring(1).toLowerCase()+"("+"int "+s.toLowerCase()+") {\n this."+s.toLowerCase()+"="+s.toLowerCase()+";\n}\n";
- }else if(map.get(s).equals("VARCHAR2")){
- str+=" \n public void " +"set"+s.substring(0,1)+s.substring(1).toLowerCase()+"("+"String "+s.toLowerCase()+") {\n this."+s.toLowerCase()+"="+s.toLowerCase()+";\n}\n";
- }else if(map.get(s).equals("DATE")){
- str+=" \n public void " +"set"+s.substring(0,1)+s.substring(1).toLowerCase()+"("+"Date "+s.toLowerCase()+") {\n this."+s.toLowerCase()+"="+s.toLowerCase()+";\n}\n";
- }else{
- str+=" \n public void " +" "+"set"+s.substring(0,1)+s.substring(1).toLowerCase()+"("+map.get(s)+" "+s.toLowerCase()+") {\n this."+s.toLowerCase()+"="+s.toLowerCase()+";\n}\n";
- }
- }
- return str;
- }
- }
不用框架自己写的,还有漏吊的,还有很多,没有写明白的,望指正