ibatis 环境搭建(1)
目录和jar包
创建ibatis 配置文件 SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings useStatementNamespaces="true" /> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/sakila" /> <property name="JDBC.Username" value="root" /> <property name="JDBC.Password" value="root" /> </dataSource> </transactionManager> <sqlMap resource="com/liang/ibatis/model/Actor.xml" /> </sqlMapConfig>
注意点,sqlmap的路径写法,是"/ "而不是" ."
Actor 的sqlmap文件 Actor.xml
<?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 namespace="actor"> <typeAlias alias="Actor" type="com.liang.ibatis.model.Actor" /> <!-- 获取全部数据 --> <select id="getAll" resultClass="Actor"> SELECT * FROM Actor </select> <!-- 插入 --> <insert id="insert" parameterClass="Actor"> insert into Actor(first_name, last_name) values (#first_name#, #last_name#) <selectKey resultClass="int" keyProperty="actor_id"> select last_insert_id() as actor_id from Actor limit 1 </selectKey> </insert> <!-- 分页 --> <select id="pageActor" parameterClass="java.util.HashMap" resultClass="Actor"> select * from Actor <dynamic prepend="WHERE"> <isGreaterThan prepend="AND" property="actor_id" compareValue="0"> actor_id > #actor_id# </isGreaterThan> </dynamic> order by actor_id limit #begin#,#pageSize# </select> <!-- 模糊查询 like ibatis 的 parameterClass 的string类型可以直接写成string或者java.lang.Strig --> <select id="selectStudentByName" parameterClass="string" resultClass="Actor"> SELECT * FROM Actor where first_name like '%$name$%' </select> <select id="doubleTable" parameterClass="string" resultClass="Actor"> SELECT a.* FROM Actor a, category c where a.actor_id =c.category_id and first_name like '%$name$%' group by First_name desc </select> <!-- <select id="selectStudentByName" parameterClass="String" --> <!-- resultClass="Actor"> --> <!-- SELECT * FROM Actor where first_name like '%$name$%' --> <!-- </select> --> </sqlMap>
IbatisRead.java //读取数据
import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.List; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; import com.liang.ibatis.model.Actor; public class IbatisRead { public static void main(String[] args) throws IOException, SQLException { Reader rd = Resources.getResourceAsReader("com/liang/ibatis/SqlMapConfig.xml"); SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd); /* This would read all records from the Employee table. */ System.out.println("Going to read records....."); List<Actor> ems = smc.queryForList("actor.getAll", null); Actor em = null; for (Actor e : ems) { System.out.print(" " + e.getActor_id()); System.out.print(" " + e.getFirst_name()); System.out.print(" " + e.getFirst_name()); em = e; System.out.println(""); } System.out.println("Records Read Successfully "); } }