项目的目录结构
!!!不写数据库对应实体类映射的话千万注意实体类大小写
1.ibatis配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- 引入对应的常量资源-->
<properties resource="SqlMapConfig.properties" />
<!-- 加载数据库 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<!-- ibatis映射文件名称-->
<sqlMap resource="UserMapper.xml" />
</sqlMapConfig>
2.常量属性文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?characterEncoding=GBK
username=root
password=1
一定要注意,每一行后面不要有空格等其他字符
3.ibatis映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<!-- 别名 -->
<typeAlias alias="User" type="com.ebzz.UserManage.entity.User" />
<!-- 查找所有未删除用户 -->
<select id="getAllUsers" resultClass="User">
select ID,Name,Real_name,Email,Address,Create_Time
from usermessage where Delete_Type='0'
</select>
<!-- 删除指定用户 -->
<update id="deleteUser" parameterClass="User">
update usermessage set Delete_Type='1' where ID= #ID#
</update>
<!-- 根据姓名模糊查询 -->
<select id="selectUser" parameterClass="String" resultClass="User">
select ID,Name,Real_name,Email,Address,Create_Time
from usermessage where Name like '%$Name$%' and Delete_Type='0'
</select>
</sqlMap>
注意:模糊查询最好不要用$$,可能会造成sql注入,而应该根据不同数据库使用不同的字符串拼接函数
Mysql:
select * from user where name like concat(‘%’,#name#,‘%’)
oracle
select * from user where name like '%' || #name# || '%'
sql serve
select * from user where name like '%' + #name# + '%'
4.加载配置文件,执行映射
//加载配置文件
String config="SqlMapperConfig.xml";
Reader reader =Resources.gerResourcesAsReader(config);
sqlMapClient sqlMap=sqlMapClientBuilder.buildSqlMapClient(reader);
//执行sql映射
List<User> user=sqlMap.queryForList("getAllUser")