java: eidt DAL
https://home.unicode.org/
人生是一種心境,生活是一種藝術,成功是一種心態,幸福是一種感覺,學習是一種成長,競爭是一種建構,情感是一種融合
java.sql.Types 数据类型 java 数据类型 CallableStatement set和 registerOutParameter 数据类型 PreparedStatement set 数据类型 之间转换相对应的数据类型弄清楚
数据类型可以自动判断,优化代码
https://docs.oracle.com/javase/8/docs/api/java/sql/CallableStatement.html
https://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html
https://docs.oracle.com/en/java/javase/14/docs/api/java.sql/java/sql/PreparedStatement.html
https://docs.oracle.com/en/java/javase/14/docs/api/java.sql/java/sql/CallableStatement.html
https://docs.oracle.com/en/java/javase/14/docs/api/java.sql/java/sql/Types.html
https://docs.oracle.com/en/java/javase/14/docs/api/allclasses-index.html
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlqr/Data-Types.html
/* * 版权所有 2021 涂聚文有限公司 * 许可信息查看: * 描述:DAL数据访问层 数据业务层,连接MySQL * * 历史版本: JDK 14.02 * 数据库:My SQL 8.0 * IDE: IntelliJ IDEA 2021.2.3 * OS: Windows 10 x64 * 2021-12-22 创建者 geovindu * 2021-12-25 添加 Lambda * 2021-12-27 修改:date * 接口类 * 2021-12-25 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc GeovinDuDAL.java * 配置文件: * driver=com.mysql.jdbc.Driver com.mysql.cj.jdbc.Driver *url=jdbc\:mysql\://localhost\:3306/数据库名称 *user=root *password=root * * */ //#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end package Geovin.DAL; import java.awt.print.Book; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.sql.*; import java.lang.reflect.Parameter; import Geovin.Model.*; import Geovin.UtilitieDB.*; /** * 数据业务层操作 * @author geovindu 涂聚文 Geovin Du * @version 1.0 * * * */ public class GeovinDuDAL { DuMySqlHelper duMySqlHelper=new DuMySqlHelper(); /** *SQL 语句添加 * @param bookKind * @return bool * */ public Boolean AddSql(BookKind bookKind) { Boolean isok=false; String sql="INSERT INTO BookKindList(BookKindName,BookKindParent) values(? ,?)"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindName()); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindParent()); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteInsertSql(sql,duParameters); return isok; } /** *SQL 语句添加 * @param bookKind * @return bool * */ public Boolean AddAutoSql(BookKind bookKind) { Boolean isok=false; String sql="INSERT INTO BookKindList(BookKindName,BookKindParent) values(? ,?)"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindName()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindParent()); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteAutoInsertSql(sql,duParameters); return isok; } /** * 存储过程添加 * @param bookKind * @return bool * **/ public Boolean AddProc(BookKind bookKind) { Boolean isok=false; String sql="{CALL proc_Insert_BookKindList(? ,?)}"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindName()); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindParent()); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteInsert(sql,duParameters); return isok; } /** * 存储过程添加 * @param bookKind * @return bool * **/ public Boolean AddAutoProc(BookKind bookKind) { Boolean isok=false; String sql="{CALL proc_Insert_BookKindList(? ,?)}"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindName()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindParent()); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteAutoInsert(sql,duParameters); return isok; } /** * 添加有返回值 * @param bookKind 输入参数 * @param outValue 返回参数 * @return bool 返回添加是否成功 * * */ public Boolean AddProc(BookKind bookKind,int outValue) { Boolean isok=false; String sql="{CALL proc_Insert_BookKindList(? ,?)}"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindName()); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindParent()); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteInsertOutSingleInt(sql,duParameters,outValue); return isok; } /** * 添加有返回值 * @param bookKind 输入参数 * @param outValue 返回参数 * @return bool 返回添加是否成功 * * */ public Boolean AddAutoProc(BookKind bookKind,int outValue) { Boolean isok=false; String sql="{CALL proc_Insert_BookKindList(? ,?)}"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindName()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindParent()); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteAutoInsertOutSingleInt(sql,duParameters,outValue); return isok; } /** * 修改 sql * @param bookKind * @return int * */ public int EditSQL(BookKind bookKind) { int isok=0; String sql="UPDATE BookKindList SET BookKindName=?,BookKindParent=? where BookKindID=?"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindName()); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindParent()); duParameter.setDataType("Integer"); duParameters.add(duParameter); duParameter.setParameterValue(bookKind.getBookKindID()); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteUpdateSql(sql,duParameters); return isok; } /** * 修改 sql * @param bookKind * @return int * */ public int EditAutoSQL(BookKind bookKind) { int isok=0; String sql="UPDATE BookKindList SET BookKindName=?,BookKindParent=? where BookKindID=?"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindName()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindParent()); duParameter=new ParameterObject(); duParameters.add(duParameter); duParameter.setDuObject(bookKind.getBookKindID()); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteAutoUpdateSql(sql,duParameters); return isok; } /** *修改 存储过程 * @param bookKind * @return int * */ public int EditProc(BookKind bookKind) { int isok=0; String sql="CALL proc_Update_BookKindList(?,?,?)"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindID()); duParameter.setDataType("Integer"); //类型可以判断,不需要去定义 duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindName()); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(bookKind.getBookKindParent()); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteUpdate(sql,duParameters); return isok; } /** *修改 存储过程 * @param bookKind * @return int * */ public int EditAutoProc(BookKind bookKind) { int isok=0; String sql="CALL proc_Update_BookKindList(?,?,?)"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindID()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindName()); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(bookKind.getBookKindParent()); duParameters.add(duParameter); isok=duMySqlHelper.ExecuteAutoUpdate(sql,duParameters); return isok; } /** * 删除 SQL语句 * @param id * @return int * * */ public int DelSQL(int id) { int isok=0; String sql="Delete From bookkindlist WHERE BookKindID =?"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(id); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok= duMySqlHelper.ExecuteDeletSql(sql,duParameters); return isok; } /** * 删除 SQL语句 * @param id * @return int * * */ public int DelAutoSQL(int id) { int isok=0; String sql="Delete From bookkindlist WHERE BookKindID =?"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(id); duParameters.add(duParameter); isok= duMySqlHelper.ExecuteAutoDelteSQL(sql,duParameters); return isok; } /** * 删除 存储过程语句 * @param id * @return int * * */ public int DelProc(int id) { int isok=0; String sql="{CALL DeleteBookKind(?)}"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(id); duParameter.setDataType("Integer"); duParameters.add(duParameter); isok= duMySqlHelper.ExecuteDelte(sql,duParameters); return isok; } /** * 删除 存储过程语句 * @param id * @return int * * */ public int DelAutoProc(int id) { int isok=0; String sql="{CALL DeleteBookKind(?)}"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(id); duParameters.add(duParameter); isok= duMySqlHelper.ExecuteAutoDelte(sql,duParameters); return isok; } /** *SQL语句查询 * @param id * @return * */ public BookKind selectSQL(int id) { ResultSet resultSet=null; BookKind bookKind=null; String sql = "SELECT * FROM BookKindList where BookKindID=?"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(id); duParameter.setDataType("int"); duParameters.add(duParameter); try { resultSet = duMySqlHelper.ExecuteQuery(sql, duParameters); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); } } catch (Exception exception) { exception.printStackTrace(); } return bookKind; } /** *SQL语句查询 * @param id * @return * */ public BookKind selectAutoSQL(int id) { ResultSet resultSet=null; BookKind bookKind=null; String sql = "SELECT * FROM BookKindList where BookKindID=?"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(id); duParameters.add(duParameter); try { resultSet = duMySqlHelper.ExecuteAutoQuery(sql, duParameters); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); } } catch (Exception exception) { exception.printStackTrace(); } return bookKind; } /** *存储过程语句 * @param id * @return * */ public BookKind selectProc(int id) { ResultSet resultSet=null; BookKind bookKind=null; String sql = "{CALL proc_Select_BookKindList(?)}"; ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(id); duParameter.setDataType("Integer"); duParameters.add(duParameter); try { resultSet = duMySqlHelper.ExecuteQuery(sql, duParameters); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); } } catch (Exception exception) { exception.printStackTrace(); } return bookKind; } /** *存储过程语句 * @param id * @return * */ public BookKind selectAutoProc(int id) { ResultSet resultSet=null; BookKind bookKind=null; String sql = "{CALL proc_Select_BookKindList(?)}"; ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(id); duParameters.add(duParameter); try { resultSet = duMySqlHelper.ExecuteAutoQuery(sql, duParameters); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); } } catch (Exception exception) { exception.printStackTrace(); } return bookKind; } /** *SQL语句查询 * @param * @return * */ public ArrayList<BookKind> selectAllSQL() { ArrayList<BookKind> list=new ArrayList<BookKind>(); ResultSet resultSet=null; BookKind bookKind=null; String sql = "SELECT * FROM BookKindList"; try { resultSet = duMySqlHelper.ExecuteQuery(sql, null); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); list.add(bookKind); } } catch (Exception exception) { exception.printStackTrace(); } return list; } /** *存储过程语句 * @param * @return * */ public ArrayList<BookKind> selectAllProc() { ArrayList<BookKind> list=new ArrayList<BookKind>(); ResultSet resultSet=null; BookKind bookKind=null; String sql = "{CALL proc_Select_BookKindListAll()}"; try { resultSet = duMySqlHelper.ExecuteQuery(sql, null); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); list.add(bookKind); } } catch (Exception exception) { exception.printStackTrace(); } return list; } /** * 分页查询 * @param fields 要查询的字段,用逗号(,)分隔 * @param table 查询的表 * @param where 查询条件 * @param orderby 排序规则 * @param pageindex 查询页码 * @param pageSize 每页记录数 * @param outValues1 两个反回参数 总记录数 总页数 * */ public ArrayList<BookKind> selectPaging(String fields,String table,String where,String orderby,int pageindex,int pageSize,ArrayList<OutObject> outValues1) { ArrayList<BookKind> list=new ArrayList<BookKind>(); // outValues1=new ArrayList<OutObject>(); ResultSet resultSet=null; BookKind bookKind=null; String sql = "{CALL sp_viewPage(?,?,?,?,?,?,?,?)}"; try { ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>(); DuParameter duParameter=null; duParameter=new DuParameter(); duParameter.setParameterValue(fields); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(table); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(where); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(orderby); duParameter.setDataType("String"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(pageindex); duParameter.setDataType("Integer"); duParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue(pageSize); duParameter.setDataType("Integer"); duParameters.add(duParameter); ArrayList<DuParameter> outParameters=new ArrayList<DuParameter>(); duParameter=new DuParameter(); duParameter.setParameterValue("totalcount"); duParameter.setDataType("Integer"); outParameters.add(duParameter); duParameter=new DuParameter(); duParameter.setParameterValue("pagecount"); duParameter.setDataType("Integer"); outParameters.add(duParameter); ArrayList<OutObject> outValues2=new ArrayList<OutObject>(); resultSet = duMySqlHelper.ExecuteQuery(sql, duParameters,outParameters,outValues1); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); list.add(bookKind); } } catch (Exception exception) { exception.printStackTrace(); } return list; } /** * 分页查询 geovindu Geovin Du 涂聚文 * @param fields 要查询的字段,用逗号(,)分隔 * @param table 查询的表 * @param where 查询条件 * @param orderby 排序规则 * @param pageindex 查询页码 * @param pageSize 每页记录数 * @param outValues1 两个反回参数 总记录数 总页数 * */ public ArrayList<BookKind> selectAutoPaging(String fields,String table,String where,String orderby,int pageindex,int pageSize,ArrayList<OutObject> outValues1) { ArrayList<BookKind> list=new ArrayList<BookKind>(); // outValues1=new ArrayList<OutObject>(); ResultSet resultSet=null; BookKind bookKind=null; String sql = "{CALL sp_viewPage(?,?,?,?,?,?,?,?)}"; try { ArrayList<ParameterObject> duParameters=new ArrayList<ParameterObject>(); ParameterObject duParameter=null; duParameter=new ParameterObject(); duParameter.setDuObject(fields); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(table); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(where); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(orderby); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(pageindex); duParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject(pageSize); duParameters.add(duParameter); ArrayList<ParameterObject> outParameters=new ArrayList<ParameterObject>(); duParameter=new ParameterObject(); duParameter.setDuObject("Integer"); outParameters.add(duParameter); duParameter=new ParameterObject(); duParameter.setDuObject("Integer"); outParameters.add(duParameter); ArrayList<OutObject> outValues2=new ArrayList<OutObject>(); resultSet = duMySqlHelper.ExecuteAutoQuery(sql, duParameters,outParameters,outValues1); while (resultSet.next()) { bookKind =new BookKind(); bookKind.setBookKindID(resultSet.getInt("BookKindID")); bookKind.setBookKindName(resultSet.getString("BookKindName")); bookKind.setBookKindParent(resultSet.getInt("BookKindParent")); list.add(bookKind); } } catch (Exception exception) { exception.printStackTrace(); } return list; } }