11-18唐兆文

mybatis

select * from userinfo where id = #{id}

resultType 属性:用于指定结果集的类型。

parameterType 属性:用于指定传入参数的类型

{}:代表占位符,相当于jdbc中的?

如果此方法只有一个参数,占位符可以写成#{value},也可以写成变量名#{id }

我们在 parameterType 属性上指定了实体类名称,所以可以省略 userInfoModel .而直接写username。

返回值类型不用声明,默认就是int类型。表示执行sql对数据库表的影响行数

mybatis默认自动提交事务是关闭的,因此,我们在实现增删改时一定要去控制事务的提交,那么在mybatis 中如何控制事务提交呢?使用session.commit()方法

新增的id赋值到了我们传入的对象中,要求:主键必须是自增的

模糊查询

配置文件:

测试方法:

@test

public void select(){

list list=userdao.finbyname("%123%");

for(userinfoModel user:list){

System.out.pintf(user);

}

}

@test

public void selelct(){

list list=userdao.finbyname("1");

for(userinfomodel user:list){

System.out print(user)

}

}

{}表示占位符,可以有效防止sql注入

${}表示拼接sql串

使用标签的parameterType属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。 实体类类型,目前我们只能使用全限定类名

resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型

实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装

esultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。在select 标签中使用 resultMap 属性指定引用即可

1读取配置文件:

InputStream in=Resources.getResourceAsstream("sqlmapconfig.xml");

2创建sqlsessionFactory的构建者对象

SqlsessionFactoryBuilder builder=new sqlaessionFactoryBuilder();

3使用构建者创建工厂对象 SqlsessionFactory

SqlsessionFactory factory=builder.build(in);

4使用sqlsessionFactory生产sqlsession对象

sqlsession session=factory.openSession();

5.使用 SqlSession 创建 dao 接口的代理对象

UserInfoDao userDao=session.getMapper(IUserInfoDao.class)

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1