sql:
/*create database geovindu
go
use geovindu;
go
*/
--基础数据设置BasicDataSet
--书分类目录kind
--BookKindForm
IF EXISTS (select * from sysobjects where id = object_id(N'[dbo].BookKindList') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE BookKindList
GO
create table BookKindList
(
BookKindID INT IDENTITY(1,1) PRIMARY KEY,
BookKindName nvarchar(500) not null,
BookKindParent int null,
BookKindCode varchar(100) ---編號
)
GO
alter table BookKindList add BookKindCode varchar(100)
select * from BookKindList
insert into BookKindList(BookKindName,BookKindParent) values('六福书目录',0)
insert into BookKindList(BookKindName,BookKindParent) values('文学',1)
insert into BookKindList(BookKindName,BookKindParent) values('设计艺术',1)
insert into BookKindList(BookKindName,BookKindParent) values('自然科学',1)
insert into BookKindList(BookKindName,BookKindParent) values('小说',2)
insert into BookKindList(BookKindName,BookKindParent) values('诗词散曲',2)
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Insert_BookKindList')
DROP PROCEDURE proc_Insert_BookKindList
GO
CREATE PROCEDURE proc_Insert_BookKindList
(
--@BookKindID Int,
@BookKindName NVarChar(1000),
@BookKindCode varchar(100),
@BookKindParent Int
)
AS
IF NOT EXISTS (SELECT * FROM BookKindList WHERE [BookKindName]=@BookKindName)
BEGIN
INSERT INTO BookKindList
(
[BookKindName] ,
[BookKindCode],
[BookKindParent]
)
VALUES
(
@BookKindName ,
@BookKindCode,
@BookKindParent
)
END
GO
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Insert_BookKindOut')
DROP PROCEDURE proc_Insert_BookKindOut
GO
CREATE PROCEDURE proc_Insert_BookKindOut
(
@BookKindName NVarChar(1000),
@BookKindCode varchar(100),
@BookKindParent Int,
@BookKindID Int output
)
AS
IF NOT EXISTS (SELECT * FROM BookKindList WHERE [BookKindName]=@BookKindName)
BEGIN
INSERT INTO BookKindList
(
[BookKindName] ,
[BookKindCode],
[BookKindParent]
)
VALUES
(
@BookKindName ,
@BookKindCode,
@BookKindParent
)
SELECT @BookKindID=@@IDENTITY
END
GO
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Update_BookKindList')
DROP PROCEDURE proc_Update_BookKindList
GO
CREATE PROCEDURE proc_Update_BookKindList
(
@BookKindID Int,
@BookKindName NVarChar(1000),
@BookKindCode varchar(100),
@BookKindParent Int
)
AS
IF NOT EXISTS (SELECT * FROM BookKindList WHERE [BookKindName]=@BookKindName)
BEGIN
UPDATE BookKindList
SET
[BookKindName]=@BookKindName ,
[BookKindCode]=@BookKindCode,
[BookKindParent]=@BookKindParent
where
[BookKindID]=@BookKindID
END
ELSE
BEGIN
UPDATE BookKindList
SET
--[BookKindName]=@BookKindName ,
[BookKindCode]=@BookKindCode,
[BookKindParent]=@BookKindParent
where
[BookKindID]=@BookKindID
END
GO
--刪除時,要刪相關的書藉信息
IF EXISTS (select * from sysobjects where [name] = 'proc_Delete_BookKindList')
DROP PROCEDURE proc_Delete_BookKindList
GO
CREATE PROCEDURE proc_Delete_BookKindList
(
@BookKindID Int
)
as
DELETE
BookKindList
WHERE
BookKindID = @BookKindID
GO
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_BookKindList')
DROP PROCEDURE proc_Select_BookKindList
GO
CREATE PROCEDURE proc_Select_BookKindList
(
@BookKindID Int
)
AS
SELECT * FROM BookKindList WHERE BookKindID = @BookKindID
GO
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_BookKindListAll')
DROP PROCEDURE proc_Select_BookKindListAll
GO
CREATE PROCEDURE proc_Select_BookKindListAll
AS
SELECT * FROM BookKindList
GO
Model
/*
* 版权所有 2021 涂聚文有限公司
* 许可信息查看:
* 描述:实体类,连接MySQL
*
* 历史版本: JDK 14.02
* 数据库:MSSQL Server 2019
* IDE: IntelliJ IDEA 2021.2.3
* OS: Windows 10 x64
* 2021-12-12 创建者 geovindu
* 2021-12-15 添加 Lambda
* 2021-12-15 修改:date
* 接口类
* 2021-12-15 修改者:Geovin Du
* 生成API帮助文档的指令:
*javadoc - -encoding Utf-8 -d apidoc BookKind.java
* 配置文件:
* driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
*url=jdbc\:sqlserver\://localhost\:1433;databaseName=geovindu;
*user=root
*password=root
*
* */
package Geovin.Model;
/**
* 实体类
*@author geovindu 涂聚文 Geovin Du
* @
*
* */
public class BookKind {
//
private int BookKindID;
private String BookKindName;
private int BookKindParent;
private String BookKindCode;
/**
* @param
* @return 得到ID
* */
public int getBookKindID() {
return BookKindID;
}
/**
* @param bookKindID 设置输入参数
*
* */
public void setBookKindID(int bookKindID) {
this.BookKindID = bookKindID;
}
/**
* @param
* @return 得到目录名称
* */
public String getBookKindName() {
return BookKindName;
}
/**
* @param bookKindName 设置输入参数
*
* */
public void setBookKindName(String bookKindName) {
this.BookKindName = bookKindName;
}
/**
* @param
* @return 得到父节点的值
* */
public int getBookKindParent() {
return BookKindParent;
}
/**
* @param bookKindParent 设置输入参数
*
* */
public void setBookKindParent(int bookKindParent) {
this.BookKindParent = bookKindParent;
}
/**
*
* */
public void setBookKindCode(String bookKindCode) {
BookKindCode = bookKindCode;
}
/**
*
* */
public String getBookKindCode() {
return BookKindCode;
}
}
DAL:
/*
* 版权所有 2021 涂聚文有限公司
* 许可信息查看:
* 描述:DAL数据访问层 数据业务层,连接MySQL
*
* 历史版本: JDK 14.02
* 数据库:MSSQL Server 2019
* IDE: IntelliJ IDEA 2021.2.3
* OS: Windows 10 x64
* 2021-12-12 创建者 geovindu
* 2021-12-15 添加 Geovin Du
* 2021-12-15 修改:涂聚文
* 接口类
* 2021-12-15 修改者:Geovin Du
* 生成API帮助文档的指令:
*javadoc - -encoding Utf-8 -d apidoc BookKindDAL.java
* 配置文件:
* driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
*url=jdbc\:sqlserver\://localhost\:1433;databaseName=geovindu; //jdbc\:mysql\://localhost\:3306/数据库名称
*user=root
*password=root
*
* */
//#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
package Geovin.DAL;
import Geovin.Interface.*;
import Geovin.Model.*;
import Geovin.Model.OutValue;
import Geovin.UtilitieDB.*;
import java.sql.*;
import java.util.ArrayList;
/**
*#parse("File Header.java")
* @apiNote 数据业务层
* @deprecated
* @Description
* @projectName
* @author geovindu 涂聚文 Geovin Du
* @date
* @version 1.0
*
*/
public class BookKindDAL implements BookKindInterface {
// SqlHelper sqlHelper=new SqlHelper();
/**
* @param info 输入一个实体
* @return 返回int 1 是否插入一条记录
* @Description 添加一条记录
* */
public int Add(BookKind info)
{
int ok=0;
ResultSet resultSet = null;
try
{
String sql = "{call proc_Insert_BookKindList(?,?,?)}";
String[] parameters = {info.getBookKindName(), String.valueOf(info.getBookKindParent()),info.getBookKindCode() };
SqlHelper.CallProc(sql,parameters);
ok=1;
}
catch (Exception exception)
{
ok=0;
exception.printStackTrace();
}
finally {
SqlHelper.close(resultSet, SqlHelper.getCs(), SqlHelper.getConnection());
}
return ok;
}
/**
* @param info 输入实体
* @return 返回值
*
* */
public int AddOut(BookKind info)
{
int ok=0;
ResultSet resultSet = null;
try
{
String sql = "{call proc_Insert_BookKindOut(?,?,?,?)}"; //多少个参数,多少个问号,包括输入,输出参数后面,输入,输出的个数量要明晰
String[] parameters = {info.getBookKindName(), String.valueOf(info.getBookKindParent()),info.getBookKindCode() };
Integer[] out = { Types.INTEGER };
CallableStatement cs=(CallableStatement)SqlHelper.CallProcOutInt(sql,parameters,out);
ok= cs.getInt(3);
}
catch (Exception exception)
{
ok=0;
exception.printStackTrace();
}
finally {
SqlHelper.close(resultSet, SqlHelper.getCs(), SqlHelper.getConnection());
}
return ok;
}
/**
* 添加返回值
* @param info 输入实体
* @param outValue 返回值
* @return 返回值
*
* */
public int AddOut(BookKind info,OutValue outValue)
{
int ok=0;
ResultSet resultSet = null;
try
{
String sql = "{call proc_Insert_BookKindOut(?,?,?,?)}";
String[] parameters = {info.getBookKindName(), String.valueOf(info.getBookKindParent()),info.getBookKindCode() };
Integer[] out = { Types.INTEGER };
CallableStatement cs=(CallableStatement)SqlHelper.CallProcOutInt(sql,parameters,out);
outValue.setIntValue(cs.getInt(3));
info.setBookKindID(cs.getInt(3));
ok=cs.getInt(3);
}
catch (Exception exception)
{
ok=0;
exception.printStackTrace();
}
finally {
SqlHelper.close(resultSet, SqlHelper.getCs(), SqlHelper.getConnection());
}
return ok;
}
/**
*添加返回值
* @param info 一个实体记录
* @return
*
* */
public int AddOut2(BookKind info)
{
int ok=0;
ResultSet resultSet = null;
try
{
String sql = "{call proc_Insert_BookKindOut(?,?,?,?)}";
String[] parameters = {info.getBookKindName(), String.valueOf(info.getBookKindParent()),info.getBookKindCode(),""};
Integer out =Types.INTEGER;
info.setBookKindParent(out);
SqlHelper.callProcInputAndOutPutString(sql,parameters);
ok=out; //不是添加的ID值
}
catch (Exception exception)
{
ok=0;
exception.printStackTrace();
}
finally {
SqlHelper.close(resultSet, SqlHelper.getCs(), SqlHelper.getConnection());
}
return ok;
}
/**
* #parse("更新记录")
* @param info 输入实体
* @return 返回参数
*
* */
public int Update(BookKind info) {
int ok=0;
ResultSet resultSet = null;
try
{
String sql = "{call proc_Update_BookKindList(?,?,?,?)}";
String[] parameters = {String.valueOf(info.getBookKindID()), info.getBookKindName(), String.valueOf(info.getBookKindParent()),info.getBookKindCode() };
SqlHelper.CallProc(sql,parameters);
ok=1; //
}
catch (Exception exception)
{
ok=0;
exception.printStackTrace();
}
finally {
SqlHelper.close(resultSet, SqlHelper.getCs(), SqlHelper.getConnection());
}
return ok;
}
/**
* 查询一条记录
* @param id
* @return BookKind 指定查找的ID记录
* @author geovindu
* @date 2021-12-20
* */
public BookKind SelectSQLBookKindInfo(String id)
{
BookKind info=null;
String sql = "SELECT * FROM BookKindList where BookKindID=?";
String[] parameters = { id };
try {
info=new BookKind();
ResultSet rs = SqlHelper.DuexecuteQuery(sql, parameters);
while (rs.next()) {
info.setBookKindID(rs.getInt("BookKindID"));
info.setBookKindName(rs.getString("BookKindName"));
info.setBookKindParent(rs.getInt("BookKindParent"));
info.setBookKindCode(rs.getString("BookKindCode"));
}
//rs.close();
//rs=null;
//return info;
} catch (SQLException e) {
e.printStackTrace();
} finally {
SqlHelper.close(SqlHelper.getRs(), SqlHelper.getPs(), SqlHelper
.getConnection());
}
return info;
}
/**
* 查询所有记录
* @param
* @return BookKind 所有记录
* @date 2021-12-20
* @author geovindu
* */
public ArrayList<BookKind> SelectSQLBookKindAll()
{
ArrayList<BookKind> list=new ArrayList<BookKind>();
String sql = "SELECT * FROM BookKindList";
try {
BookKind info=null;
ResultSet rs = (ResultSet)SqlHelper.DuexecuteQuery(sql,null);
while (rs.next()) {
info=new BookKind();
info.setBookKindID(rs.getInt("BookKindID"));
info.setBookKindName(rs.getString("BookKindName"));
info.setBookKindParent(rs.getInt("BookKindParent"));
info.setBookKindCode(rs.getString("BookKindCode"));
list.add(info);
}
//return info;
rs.close();
rs=null;
} catch (SQLException e) {
e.printStackTrace();
} finally {
SqlHelper.close(SqlHelper.getRs(), SqlHelper.getPs(), SqlHelper
.getConnection());
}
return list;
}
/**
* 存储过程查询
* @param
*
* */
public ArrayList<BookKind> SelectSProcBookKindAll()
{
Connection conn= null;
//大多数情况下用preparedstatement替代statement
PreparedStatement ps = null;
ResultSet rs=null;
ArrayList<BookKind> list=new ArrayList<BookKind>();
String sql = "call proc_Select_BookKindListAll()";
BookKind info=null;
try {
//1.
//conn =MySqlHelper.getConnection();
//CallableStatement statement = conn.prepareCall(sql);
//statement.execute();
//rs =statement.executeQuery();
//2
rs =SqlHelper.ExecuteQueryProcNoneData(sql);
if(rs!=null) {
while (rs.next()) {
info = new BookKind();
info.setBookKindID(rs.getInt("BookKindID"));
info.setBookKindName(rs.getString("BookKindName"));
info.setBookKindParent(rs.getInt("BookKindParent"));
info.setBookKindCode(rs.getString("BookKindCode"));
list.add(info);
}
}
//return info;
rs.close();
rs=null;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("no");
} finally {
SqlHelper.close(SqlHelper.getRs(), SqlHelper.getPs(), SqlHelper.getConnection());
}
return list;
}
/**
* 存储过程查询
*
* */
public ArrayList<BookKind> SelectSProcToBookKindAll()
{
Connection conn= null;
//大多数情况下用preparedstatement替代statement
PreparedStatement ps = null;
ResultSet rs=null;
ArrayList<BookKind> list=new ArrayList<BookKind>();
String sql = "{call proc_Select_BookKindListAll()}";
BookKind info=null;
try {
//1
//conn = DriverManager.getConnection(url,userName,password);//
//System.out.println("连接成功");
//conn=getConnection();
//2.
// conn =MySqlHelper.getConnection();
// CallableStatement statement = conn.prepareCall(sql);
// statement.execute();
// rs =statement.executeQuery();
//3.
rs =SqlHelper.ExecuteQueryProcNoneData(sql);
if(rs!=null) {
while (rs.next()) {
info = new BookKind();
info.setBookKindID(rs.getInt("BookKindID"));
info.setBookKindName(rs.getString("BookKindName"));
info.setBookKindParent(rs.getInt("BookKindParent"));
info.setBookKindCode(rs.getString("BookKindCode"));
list.add(info);
}
}
//return info;
rs.close();
rs=null;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("no");
} finally {
SqlHelper.close(SqlHelper.getRs(), SqlHelper.getPs(), SqlHelper.getConnection());
}
return list;
}
}
IDAL:
/*
* 版权所有 2021 涂聚文有限公司
* 许可信息查看:
* 描述:Interface 接口层,连接MySQL
*
* 历史版本: JDK 14.02
* 数据库:MSSQL Server 2019
* IDE: IntelliJ IDEA 2021.2.3
* OS: Windows 10 x64
* 2021-12-12 创建者 geovindu
* 2021-12-15 添加 Lambda
* 2021-12-15 修改:date
* 接口类
* 2021-12-15 修改者:Geovin Du
* 生成API帮助文档的指令:
*javadoc - -encoding Utf-8 -d apidoc BookKindInterface.java
* 配置文件:
* driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
*url=jdbc\:sqlserver\://localhost\:1433;databaseName=geovindu; ///jdbc\:mysql\://localhost\:3306/数据库名称
*user=root
*password=root
*
* */
package Geovin.Interface;
import Geovin.Model.BookKind;
import Geovin.Model.OutValue;
import java.util.ArrayList;
/**
* #parse("接口")
* @author geovindu 涂聚文 Geovin Du
* @version 1.0
* */
public interface BookKindInterface {
/**
* @param info
* @return
* */
public int Add(BookKind info);
/**
*
* @param info
* @return
*
* */
public int AddOut(BookKind info);
/**
*
*
* */
public int AddOut(BookKind info, OutValue outValue);
/**
*
* @param info
* @return
*
* */
public int Update(BookKind info);
/**
*
* @param id
* @return
*
* **/
public BookKind SelectSQLBookKindInfo(String id);
/**
*
* @param
* @return
*
* */
public ArrayList<BookKind> SelectSQLBookKindAll();
/**
*
* @param
* @return
*
* */
public ArrayList<BookKind> SelectSProcBookKindAll();
public ArrayList<BookKind> SelectSProcToBookKindAll();
}
Factory:
/*
* 版权所有 2021 涂聚文有限公司
* 许可信息查看:
* 描述:工厂层,抽象工厂 连接MySQL
*
* 历史版本: JDK 14.02
* 数据库:MSSQL Server 2019<br><br> * IDE: IntelliJ IDEA 2021.2.3
* OS: Windows 10 x64
* 2021-12-12 创建者 geovindu
* 2021-12-15 添加 Lambda
* 2021-12-15 修改:date
* 接口类
* 2021-12-15 修改者:Geovin Du
* 生成API帮助文档的指令:
*javadoc - -encoding Utf-8 -d apidoc BookKind.java
* 配置文件:
* driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
*url=jdbc\:sqlserver\://localhost\:1433;databaseName=geovindu; //jdbc\:mysql\://localhost\:3306/数据库名称
*user=root
*password=root
*
* */
package Geovin.Factory;
import Geovin.DAL.BookKindDAL;
import Geovin.Interface.BookKindInterface;
/**
* #parse("抽象工厂")
* @author geovindu 涂聚文 Geovin Du
* @version 1.0
*
* */
public class AbstractFactory {
/**
*
*
* */
public static BookKindInterface CreateBookKind()
{
BookKindInterface iBookKindInterface=new BookKindDAL();
return iBookKindInterface;
}
}
BLL:
/*
* 版权所有 2021 涂聚文有限公司
* 许可信息查看:
* 描述:业务逻辑层,连接MySQL
*
* 历史版本: JDK 14.02
* 数据库:MSSQL Server 2019
* IDE: IntelliJ IDEA 2021.2.3
* OS: Windows 10 x64
* 2021-12-12 创建者 geovindu
* 2021-12-15 添加 Lambda
* 2021-12-15 修改:date
* 接口类
* 2021-12-15 修改者:Geovin Du
* 生成API帮助文档的指令:
*javadoc - -encoding Utf-8 -d apidoc BookKind.java
* 配置文件:
* driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
*url=jdbc\:sqlserver\://localhost\:1433;databaseName=geovindu; //jdbc\:mysql\://localhost\:1433/数据库名称
*user=root
*password=root
*
* */
package Geovin.BLL;
import Geovin.Factory.AbstractFactory;
import Geovin.Model.*;
import Geovin.Model.OutValue;
import Geovin.Interface.*;
import java.util.ArrayList;
/**
* #parse("业务逻辑层")
* @author geovindu 涂聚文 Geovin Du
* @
* */
public class BookKindBLL {
//
private static BookKindInterface dal=AbstractFactory.CreateBookKind();
/**
* @param info 输入一个实体
* @return 返回int 1 是否插入一条记录
* */
public int Add(BookKind info)
{
return dal.Add(info);
}
/**
* @param info 输入实体
* @return 返回值
* */
public int AddOut(BookKind info)
{
return dal.AddOut(info);
}
/**
* 添加返回值
* @param info 输入实体
* @param outValue 返回值
* @return 返回值
* */
public int AddOut(BookKind info,OutValue outValue){return dal.AddOut(info,outValue);}
/**
*添加返回值
* @param info 一个实体记录
* @return
* */
public int Update(BookKind info)
{
return dal.Update(info);
}
/**
* 查询一条记录
* @param id
* @return BookKind 指定查找的ID记录
* */
public BookKind SelectSQLBookKindInfo(String id)
{
return dal.SelectSQLBookKindInfo(id);
}
/**
* 查询所有记录
* @param
* @return BookKind 所有记录
* */
public ArrayList<BookKind> SelectSQLBookKindAll()
{
return dal.SelectSQLBookKindAll();
}
/**
* 存储过程查询
* @param
* */
public ArrayList<BookKind> SelectSProcBookKindAll(){ return dal.SelectSProcBookKindAll();}
/**
* 存储过程查询
* */
public ArrayList<BookKind> SelectSProcToBookKindAll(){return dal.SelectSProcToBookKindAll();}
}
测试:
BookKindBLL bookKindBLL=new BookKindBLL();
String id="2";
BookKind info=bookKindBLL.SelectSQLBookKindInfo(id);
System.out.println("Id:"+id+",名称:"+info.getBookKindName()+"父节点:"+info.getBookKindParent());
ArrayList<BookKind> arrayList=new ArrayList<BookKind>();
arrayList=bookKindBLL.SelectSProcToBookKindAll();
for(BookKind bookKind:arrayList)
{
System.out.println("Id:"+bookKind.getBookKindID()+",名称:"+bookKind.getBookKindName()+"父节点:"+bookKind.getBookKindParent()+"编码:"+bookKind.getBookKindCode());
}