Mybaits教室

1

パブリックインターフェイスUserMapper {
パブリックリスト<ユーザ> getUserListByNullParam();
公共の一覧<ユーザ> getUesrListByUserName(文字列のuserName)。
公共の一覧<ユーザ> getUserList(ユーザーユーザー);
公共の一覧<ユーザ> getUserListByMap(地図<文字列、文字列>ユーザマップ);
公共の一覧<ユーザ> getUserList();
公共int型の追加(ユーザユーザ)。
公共int型は、(ユーザーのユーザー)を変更します。

}
の<?xml version = "1.0"エンコード= "UTF-8"?>
<DOCTYPEマッパー!
PUBLIC " - // mybatis.org//DTDマッパー3.0 // EN"
「http://mybatis.org/dtd/ MyBatisの-3-mapper.dtd ">
<マッパー名前空間は=" com.kgc.dao.UserMapper ">
<SELECT IDが="カウント」resultTypeとは= "INT">
SELECT COUNT(1)smbms_userから
</選択>
<IDを選択= "ユーザリスト" resultTypeと= "ユーザー"> -返回的是ユーザー类型

smbms_userから選択*
</ select>の

<ID = "getUserListByNullParam" resultTypeと= "ユーザー"を選択>
smbms_user SELECT * FROM
</ select>の
<! -耿局用户名来查询列表、模糊查询のParameterType参数类型resultTypeと返回类型- >
<ID = "getUesrListByUserNameを選択"のParameterType =" string」はresultTypeと= "ユーザー">
SELECT * FROM連結等smbms_userのuserName( '%'、#{userNameに}、 '%')から。
</ select>の
<! -查询用户列表- >
<! - <選択のid = "getUserList"のParameterType = "ユーザー" resultTypeと= "ユーザー"> - >
<! - smbms_userから選択*どこのuserNameのようなCONCAT( '%'、#{userNameに}、 '%')とUSERROLE =#{USERROLE}; - >
<! - </選択> - >
<! -地図查询- >

CONCAT( '%'、#{userNameに}、 '%')とUSERROLE =#{USERROLE}様smbms_user userNameにSELECT * FROM。
</ select>の
<! -多表查询低级- >
<! - <選択のid = "getUserList"のParameterType = "ユーザー" resultTypeとは= "ユーザー"> - >
<! - Uを選択*、R。 smbms_userからuserRoleNameとして.roleName U、smbms_role R連結などのuserName( '%'、#{userNameに}、 '%')とUSERROLE =#{USERROLE} - >
<! -とu.userRole = r.id ; - >
<! - </ select>の- >
<! -多表查询マップ- >
<このresultMap ID = "ユーザリスト"タイプ= "ユーザー">
<結果列= "ID"プロパティ= "ID "/>
<結果カラム=" USERCODE」プロパティ= "USERCODE" />



<結果列= "のroleName"プロパティ= "userRoleName" />
<! -コラム字段名指向特性属性名手工映射- >
</このresultMap>
<選択のid = "getUserList"のParameterType = "ユーザー"このresultMap = "ユーザリスト「>
Uを選択して*、r.roleName smbms_userからU、smbms_role Rのようなユーザ名。
CONCAT( '%'、#{userNameに}、 '%')とUSERROLE =#{USERROLE}
とu.userRole = r.idと、
</ select>の
<! -插入挿入- >
<idは=のParameterType = "com.kgc.pojo.Userを" "追加"を挿入>
(ユーザーコード、ユーザ名、userPassword属性、性別、誕生日、電話番号、住所smbms_userに挿入、 USERROLE、CREATEDBY、CreationDateプロパティ)の値(#{USERCODE}、{#のuserName}、#{にuserPassword}、#{性別}、{#誕生日}、{#電話}、#{アドレス}


<更新ID =のParameterType = "com.kgc.pojo.User"を"変更">
更新smbms_userセットUSERCODE =#{USERCODE}、のuserPassword =#{にuserPassword}
ID =#{ID}
</更新>

</マッパー>

DAO

 

2

//シリアライズシーケンス伝送ネットワーク
のパブリッククラスを実装Serializableを{ユーザー
専用ID整数; // ID
非公開文字列USERCODE; //ユーザーコード
プライベート文字列のuserName; //ユーザー名
プライベート文字列のuserPassword; //ユーザーのパスワード
プライベート整数性別; //性別
プライベート日の誕生日; //生年月日
プライベート文字列電話; //電話
プライベート文字列のアドレス; //取り組む
民間整数USERROLEを; //ユーザーの役割
、民間整数CREATEDBYは、によって作成//
プライベート日付のCreationDate; //作成した
プライベート整数modifyBy ; //による更新
民間日付modifyDate; //更新時間
プライベート文字列userRoleName; //ユーザの役割名

 

パブリック文字列getUserRoleName(){
userRoleNameを返します。
}
公共ボイドsetUserRoleName(文字列userRoleName){
this.userRoleName = userRoleName。
}
パブリック整数のgetId(){
IDを返します。
}
公共ボイドSETID(整数ID){
this.id = ID。
}
パブリック文字列getUserCode(){
ユーザーコードを返します。
}
公共ボイドsetUserCode(文字列ユーザーコード){
this.userCode = USERCODE。
}
パブリック文字列getUserName(){
リターンのuserName。
}
公共ボイドsetUserName(文字列のuserName){
this.userName = userNameに。
}
パブリック文字列getUserPassword(){
userPassword属性を返します。
}
公共ボイドsetUserPassword(文字列のuserPassword){
this.userPassword =のuserPassword。
}
パブリック整数getGender(){
性別を返します。
}
公共ボイドsetGender(整数性別){
this.gender性別を=。
}
公共日getBirthday(){
誕生日を返します。
}
公共ボイドsetBirthday(日の誕生日){
this.birthday =誕生日。
}
パブリック文字列getPhone(){
リターン電話。
}
公共ボイドsetPhone(文字電話){
this.phone =電話。
}
パブリック文字列のgetAddress(){
リターンアドレス。
}
公共ボイドsetAddress(列アドレス){
this.address =アドレス。
}
パブリック整数getUserRole(){
USERROLEを返します。
}
公共ボイドsetUserRole(整数USERROLE){
this.userRole = USERROLE。
}
パブリック整数getCreatedBy(){
CREATEDBYを返します。
}
公共ボイドsetCreatedBy(整数CREATEDBY){
this.createdBy = CREATEDBY。
}
公共日GETCREATIONDATE(){
CreationDateプロパティを返します。
}
公共ボイドsetCreationDate(日付CreationDateプロパティ){
this.creationDate = CreationDateプロパティ。
}
パブリック整数getModifyBy(){
modifyByを返します。
}
公共ボイドsetModifyBy(整数modifyBy){
this.modifyBy = modifyBy。
}
公共日getModifyDate(){
modifyDateを返します。
}
公共ボイドsetModifyDate(日付modifyDate){
this.modifyDate = modifyDate。
}

@Override
パブリック文字列のtoString(){
戻り"ユーザー{" +
"ID =" + ID +
"USERCODE = '" + USERCODE + '\'' +
"は、ユーザ名= '" + userNameに+ '\'' +
" 、のuserPassword = ' "+のuserPassword + '\'' +
"、性別= "+性別+
"、誕生日= "+誕生日+
"、電話= ' "+電話+ '\'' +
"、アドレス= '」+アドレス+ '\'」+
"USERROLE =" + USERROLE +
"CREATEDBY =" + CREATEDBY +
"のCreationDate =" +のCreationDate +
"modifyBy =" + modifyBy +
"modifyDate =" + modifyDate +
」、userRoleName = '」+ userRoleName + '\'' +
'}';
}
}

歌います

 

3

パブリッククラスMybatisUtils {
プライベート静的SqlSessionFactory sqlSessionFactory。
静的{
文字列のパス= "MyBatisの-config.xmlの";
{試みる
入力ストリームは= Resources.getResourceAsStream(パス)です。
sqlSessionFactory =新しいSqlSessionFactoryBuilder()()で構築。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}


}
パブリック静的SQLSESSION getSqlSession(){
//事务
//默认真关闭自动提交
//偽开启
)(sqlSessionFactory.openSessionを返します。
}
パブリック静的ボイドcloseSqlSession(SQLSESSION SQLSESSION){
IF(!= NULL SQLSESSION)
sqlSession.close();
}
}

有用

 

4

パブリッククラスTestUserMapper {
@Test
公共ボイドTEST01(){
// 1记载核心配置文件。
文字列のパス= "MyBatisの-config.xmlの";
InputStreamが= nullです。
試す{
= Resources.getResourceAsStream(パス)です。
//2.mybatis的核心类
。SqlSessionFactory sqlSessionFactory =新しいSqlSessionFactoryBuilder()()で構築します。
SQLSESSION SQLSESSION = sqlSessionFactory.openSession()。
int型の結果= sqlSession.selectOne( "com.kgc.dao.UserMapper.count");
System.out.println(結果)。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}

}
@Test
//使用工具类
公共ボイドTEST02(){
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
一覧<ユーザー> USERLIST = sqlSession.selectList( "com.kgc.dao.UserMapper.userlist");
用(ユーザーユーザー:ユーザーリスト){
System.out.printlnは(ユーザ)。
}
}
@Test
//接口方式(以后全部用接口方式)
公共ボイドTEST03(){
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
一覧<ユーザー> USERLIST = sqlSession.getMapper(UserMapper.class).getUserListByNullParam();
用(ユーザーユーザー:ユーザーリスト){
System.out.printlnは(ユーザ)。
}

}
@Test
公共ボイドtest04(){
文字列のuserName = "赵"。
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
一覧<ユーザー> USERLIST = sqlSession.getMapper(UserMapper.class).getUesrListByUserName(ユーザー名);
用(ユーザーユーザー:ユーザーリスト){
System.out.printlnは(ユーザ)。
}
}
@Test
//多条件查询
公共ボイドtest05(){
ユーザーユーザ=新しいユーザー();
user.setUserName( "赵");
user.setUserRole(2)。
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
一覧<ユーザー> USERLIST = sqlSession.getMapper(UserMapper.class).getUserList(ユーザー);
用(ユーザーUSER1:ユーザーリスト){
System.out.printlnは(user1.getUserName())。
}
}
@Test
//地図查询
ます。public void test06(){
一覧<ユーザー> USERLIST =新しいArrayListを<>();
地図<文字列、文字列>ユーザマップ=新しいHashMapの<>();
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
userMap.put( "userNameに"、 "赵");
userMap.put( "USERROLE"、 "2")。
一覧<ユーザー> userListByMap = sqlSession.getMapper(UserMapper.class).getUserListByMap(ユーザマップ);
用(ユーザーユーザー:userListByMap){
System.out.printlnは(user.getUserName())。
}


}
@Test
公共ボイドtest07(){
ユーザーユーザ=新しいユーザー();
user.setUserName( "赵");
user.setUserRole(2)。
SQLSESSION SQLSESSION = MybatisUtils.getSqlSession()。
一覧<ユーザー> USERLIST = sqlSession.getMapper(UserMapper.class).getUserList(ユーザー);
{(USERLISTユーザーUSER1)のため
のSystem.out.println(user1.getUserName()+ "*******" + user1.getUserRoleName()+
"*******" + user1.getAddress( ));
}
}
@Test
公共ボイドtestAdd(){
int型のカウント= 0;
SQLSESSION SQLSESSION = NULL;
ユーザーのユーザー= NULL;
試す{
SQLSESSION = MybatisUtils.getSqlSession()。
ユーザー=新しいユーザー();
user.setUserCode( "test001")。
user.setUserName( "001测试")。
user.setAddress( "测试地址");
user.setBirthday(新しいてSimpleDateFormat( "YYYY-MM-DD")パース( "2019年10月21日"));
user.setGender(1)。
user.setUserPassword( "123456");
user.setUserRole(2)。
user.setCreatedBy(1)。
user.setCreationDate(新しいDate());
カウント= sqlSession.getMapper(UserMapper.class)は、(ユーザーが).add。
//私は2/0を= int型。
sqlSession.commit();
}キャッチ(例外e){
e.printStackTrace();
sqlSession.rollback();
= 0を数えます。

 

}最後に{
MybatisUtils.closeSqlSession(SQLSESSION)。
}
のSystem.out.println(カウント)。
}
@Test
公共ボイドtestModify(){
int型のカウント= 0;
SQLSESSION SQLSESSION = NULL;
ユーザーのユーザー= NULL;
試す{
SQLSESSION = MybatisUtils.getSqlSession()。
ユーザー=新しいユーザー();
user.setId(16)。
user.setUserPassword( "654321");
user.setUserCode( "009");
カウント= sqlSession.getMapper(UserMapper.class)(ユーザ).modify。
sqlSession.commit();
}キャッチ(例外e){
//sqlSession.rollback()。
e.printStackTrace();
}最後に{
MybatisUtils.closeSqlSession(SQLSESSION)。
}
System.out.println(カウント)。
}
}

テスト

 

5

<?xml version = "1.0"エンコード= "UTF-8"?>
<DOCTYPE設定!
PUBLIC " - // mybatis.org//DTDコンフィグ3.0 // EN"
「http://mybatis.org/dtd/mybatis -3- config.dtd ">
<構成>
<! -加载数据库配置信息- >
<プロパティリソース=" database.properties ">
<! - <=プロパティ名"ドライバ"値=" com.mysql。 cj.jdbc.Driver "> </ property>の- >
?<! - <プロパティ名=" URL "の値="はjdbc:mysqlの:// localhostを:3306 / smbms useUnicode =真&characterEncoding = UTF8&serverTimezone = GMT%2B8&useSslオプション=偽&zeroDateTimeBehavior = CONVERT_TO_NULL "> </ property>の- >
<! - <プロパティ名="ユーザ名」値= "ルート"> </プロパティ> - >
<! - <プロパティ名= "パスワード"値= ""> </ property>の- >
</プロパティ>
<! -设置日记行为- >
<設定>
</設定> <名前= "logImpl"値= "LOG4J"設定>
<! -延迟加载- >
<設定名= "lazyLoadingEnabled"値= "偽"> </設定>
<! -禁止自动を匹配- >
<設定名= "autoMappingBehavior"値= "NONE"> </設定>

</設定>
<! -エイリアスの設定- >
<typeAliases>
<! -私たちはエンティティクラスの多くを持っている場合、ここで設定する場合、推奨されていないにも非常に冗長である
typeAliasは「= cn.kgcを入力し、<。 pojo.User - "> </ typeAlias>>
com.kgc.pojo「> </パッケージ変更のための>名前=のための<Package変更"
</ typeAliases>
ランタイム環境設定- - > <
<! - devの開発環境- - >
<環境デフォルト= "DEV">
<環境ID = "DEV">
<トランザクションマネージャーのタイプ= "JDBC"> </トランザクションマネージャー>
<データソースタイプ= "POOLED">
<プロパティ名= "ドライバ"値=「$ { }ドライバー"/>
<プロパティ名=" URL "の値=" $ {} URL "/>
<プロパティ名="ユーザ名"値="$ {ユーザー名} "/>
<プロパティ名="パスワード」値= "$ {パスワード}" />
</のdataSource>
</環境>
<! -测试环境- >
<環境ID = "テスト">
<トランザクションマネージャータイプ= "JDBC"> </のTransactionManager>
<データソースのタイプ= "POOLED">
<プロパティ名= "ドライバ"値= "$ {ドライバ}" />
<プロパティ名= "URL"値= "$ {URL } "/>
<プロパティ名="ユーザ名」値= "$ {ユーザー名}" />
<プロパティ名= "パスワード"値= "$ {パスワード}" />
</のdataSource>
</環境>
<! -生产环境- >
<環境ID = "プロ">
<トランザクションマネージャータイプ= ""> </のTransactionManager>
<データソースのタイプ= "POOLED">
<プロパティ名= "ドライバ"値= "$ {ドライバ}" />
<プロパティ名= "URL"の値= "$ {URL}" />
<プロパティ名= "ユーザ名"値= "$ {ユーザー名}" />
<プロパティ名= "パスワード"値= "$ {パスワード}" />
</のdataSource>
</環境>
</環境>
<マッパー>
<マッパー資源= "COM / KGC / DAO / UserMapper.xml"> </マッパ>
</マッパー>
</構成>

おすすめ

転載: www.cnblogs.com/zdxzdx/p/11719046.html