项目的框架(SE形式的)
添加用户:
UserMapper接口:
/**
* 添加用户信息
* @param user
* @return
*/
public int addUser(User user);
UserMapper映射文件:
<!--若数据库支持主键自增,设置了useGeneratedKeys="true" keyProperty="id" 就可以将添加之后的id返回到传递的对象中去 -->
<insert id="addUser" useGeneratedKeys="true" keyProperty="id">
insert into user values(null,#{username},#{password},#{email})
</insert>
测试代码:
@Test
public void t3() {
SqlSession session = sqlFa.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
int user = mapper.addUser(new User(null,"798","asdf","sadf"));
System.out.println(user);
session.commit();
}
删除,修改,一样没区别
查询:
一个或多个对象:
/**
* 添加用户信息
* @param user
* @return
*/
public int addUser(User user);
/**
* 查询所有的用户信息
* @return
*/
public List<User> getUserAll();
<select id="getUserById" resultType="User">
select * from user where id=#{id}
</select>
<select id="getUserAll" resultType="User">
select * from user
</select>
注意:这里即使是查询多个他的返回值类型依然是对象,但是实际会返回一个List集合
@Test
public void t1() {
SqlSession session = sqlFa.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
session.commit();
}
@Test
public void t2() {
SqlSession session = sqlFa.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> user = mapper.getUserAll();
System.out.println(user);
session.commit();
}
MyBatis核心配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 数据源文件,类路径下 -->
<properties resource="db.properties"></properties>
<settings>
<!-- 将下划线转换成驼峰命名 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- 自动映射默认值PARTIAL NONE关闭自动映射 -->
<setting name="autoMappingBehavior" value="PARTIAL" />
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 设置加载的数据是按需还是全部 -->
<setting name="aggressiveLazyLoading" value="false" />
</settings>
<typeAliases><!-- 可以简写增删改的返回值类型 -->
<package name="com.thekingqj.bean"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 事务管理器JDBC -->
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</dataSource>
</environment>
</environments>
<!-- 别名处理,这样在Mapper配置文件中返回值类型可以直接写类名了 -->
<mappers>
<!-- 可以直接映射配置文件的名称 -->
<!-- <mapper resource="UserMapper.xml" /> -->
<!--批量注册,这种方式要求SQL映射文件名必须和接口名相同并且在同一目录下 -->
<mapper class="com.thekingqj.dao.UserMapper"/>
<mapper class="com.thekingqj.dao.DeptMapper"/>
</mappers>
</configuration>