Mybatisエージェントインタフェース
7874 ワード
mybatisの#と$の違いを整理します.
動的SQL動的SQLを使用する目的は、SQL文にデータの判断を加えることです.入力されたデータに基づいてSQL文を作成します.動的SQL文の例:一部のデータを挿入し、プライマリ・キー値またはID(動的SQL):挿入したプライマリ・キー列を取得します.一般的には、oracleのシーケンスによって自増されるカラムを含むデータベースに対して自増されます.挿入時に属性を設定する必要があります.
mybatisは私たちにデータの削除と検索のインタフェースを提供してくれたので、mybatisが提供してくれたインタフェースを私たちがカスタマイズした方法と統合しました.エージェントモード開発Mapperインタフェース開発,すべてのmybatisの開発はmapperインタフェースエージェントを採用している.まず、一般的なdaoレイヤ操作インタフェースを定義します.
あるテーブルに対する添削改ざんを実現する実現インタフェース(Mapperインタフェース):
SQLファイルを構成します.namespaceに注意してください.このnamespaceは、実装されたインタフェースの限定名と一致する必要があります.
このmapperエージェントインタフェースの作成に成功しましたか?
#{} , , 。 JDBC (?)。
, :( oracle):
and username like concat(concat('%',#{username}),'%')
concat , 。
$ , $ ( , ), SQL 。
and username like concat(concat('%',${value }),'%')
# JDBC (?), 。 。 。 SQL 。
$ JDBC 。 ( , )
動的SQL動的SQLを使用する目的は、SQL文にデータの判断を加えることです.入力されたデータに基づいてSQL文を作成します.動的SQL文の例:一部のデータを挿入し、プライマリ・キー値またはID(動的SQL):挿入したプライマリ・キー列を取得します.一般的には、oracleのシーケンスによって自増されるカラムを含むデータベースに対して自増されます.挿入時に属性を設定する必要があります.
<insert id="insertItem" parameterType="Company" keyColumn="COMPANYID"
keyProperty="companyid" useGeneratedKeys="true">
<trim prefix="insert into company(companyid," suffixOverrides=",">
<if test="companyname!=null and companyname!=''">
companyname,
if>
<if test="address!=null and address!=''">
address,
if>
trim>
<trim prefix=") values(companyask.nextval," suffixOverrides="," suffix=")">
<if test="companyname!=null and companyname!=''">
#{companyname},
if>
<if test="address!=null and address!=''">
#{address},
if>
trim>
insert>
mybatisは私たちにデータの削除と検索のインタフェースを提供してくれたので、mybatisが提供してくれたインタフェースを私たちがカスタマイズした方法と統合しました.エージェントモード開発Mapperインタフェース開発,すべてのmybatisの開発はmapperインタフェースエージェントを採用している.まず、一般的なdaoレイヤ操作インタフェースを定義します.
public interface IDaoHotel {
int insertItem(T t);
T getmodel(Object id);
int updateItem(T t);
int deleteItem(Object id);
List getlist(T t);
}
あるテーブルに対する添削改ざんを実現する実現インタフェース(Mapperインタフェース):
public interface UserInfoMapper extends IDaoHotel<UserInfo> {}
SQLファイルを構成します.namespaceに注意してください.このnamespaceは、実装されたインタフェースの限定名と一致する必要があります.
<mapper namespace="com.jinglin.hotelsup.dao.imp.UserInfoMapper">
<insert id="insertItem" keyColumn="userid" keyProperty="userid" useGeneratedKeys="true" parameterType="UserInfo">
insert into userinfo(userid,username,userpwd,card,job)
values(userseq.nextval,#{username},#{userpwd},#{card},#{job})
insert>
mapper>
このmapperエージェントインタフェースの作成に成功しましたか?
@Test
public void testit(){
SqlSession sqlSession = sessionFactory.openSession();
//
UserInfoMapper userInfoMapper = sqlSession.getMapper(UserInfoMapper.class);
UserInfo userinfo = new UserInfo();
userinfo.setCard("222");
userinfo.setJob("softer1");
userinfo.setUsername("zhangsan51");
userinfo.setUserpwd("678");
int result= userInfoMapper.insertItem(userinfo);
sqlSession.commit();
sqlSession.close();
System.out.println(" :"+result);
System.out.println(" :"+userinfo.getUserid());
}