读书人

容易使用ibatis

发布时间: 2013-09-04 10:34:09 作者: rapoo

简单使用ibatis
<?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> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://10.10.12.250:3306/uc?characterEncoding=utf8"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="root"/> </dataSource> </transactionManager> <sqlMap resource="test/ibatis/sql.xml"/></sqlMapConfig>

?4.准备需要的sql文件 sqlXML

<?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"><!-- ibatis 输入参数 --><sqlMap namespace="User"> <select id="selectUser" resultparametername="code">package test.ibatis;import java.io.Reader;import java.util.Map;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class TestIbatis { public static void main(String[] args) throws Exception{  try{       //从配置文件中得到SqlMapClient对象       Reader reader = Resources.getResourceAsReader("sqlMapConf.xml");       SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);       reader.close();         //查询用户数据       Map users = (Map) sqlMapper.queryForObject("selectUser", 5);       System.out.println(users); }catch (Exception e) {System.out.println(e);}}}

?

?二:对照直接查询mysql数据库,

该方式,数据库信息和sql语句是依赖于程序的,大项目里若修改必须重新编译,程序写的太死,可用性差

package inspur.data;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.DriverManager;import java.sql.SQLException;/*sqlAPi主要作用是: 与数据库建立连接\发送 SQL 语句\处理结果*/public class TestJavaConMysql {static public  void main(String [] arg){/** * 装载驱动程序Class.forName("com.mysql.jdbc.Driver") * DriverManager:负责加载各种不同驱动程序—river),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。 * Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。\ *Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。 *Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。 *PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。 *CallableStatement:用以调用数据库中的存储过程。 *SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误) **/try{Connection cnn=null;Class.forName("com.mysql.jdbc.Driver");cnn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/uc_qingdao?user=root&password=&useUnicode=true&characterEncoding=utf-8");String querySql="select * from uc_users where uid>2000 and uid<10000 ";PreparedStatement stmt= cnn.prepareStatement(querySql);ResultSet rs = stmt.executeQuery(querySql);while(rs.next()){System.out.println(rs.getInt("uid"));}}catch(ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}

?

?三:与传统JDBC比较:

减少了61%的代码量

最简单的持久化框架,jar包只有300k,使用更简单主要定义一个主配置文件然后是各个子的sql文件,

sql代码从程序代码中彻底分离出来,可重用

可移植性强

四:

SqlMapClient 是一个接口,具体的实现类是SqlMapClientImp容易使用ibatis

可以映射定义好的javabean:

package test.ibatis;import java.io.Reader;import java.util.Map;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class TestIbatis { public static void main(String[] args) throws Exception{  try{       //从配置文件中得到SqlMapClient对象       Reader reader = Resources.getResourceAsReader("sqlMapConf.xml");       SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);       reader.close();         //查询用户数据,selectUser是sqlMap的id,后面是需要输入的参数//       Map users = (Map) sqlMapper.queryForObject("selectUser", 5);//       System.out.println(users);       //将ibatis的输出结果对应于javabean       User users = (User) sqlMapper.queryForObject("selectUser2", 5);       System.out.println(users.getUser_id()); }catch (Exception e) {System.out.println(e);}}}

?

<?xml version="1.0" encoding="UTF-8" ?><!-- 注意:xml的最前面左尖括号前面不能有任何字符串,包括空格和注释 --><!-- sql-map-2.dtd 标签库 --><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN""http://ibatis.apache.org/dtd/sql-map-2.dtd"><!-- ibatis 输入参数 --><sqlMap namespace="User"> <select id="selectUser" resultparameter输出结果强转为提前定义好的javabean --> <select id="selectUser2" resultparameterClass="int">  select user_id,uid,login_email from uc_users where uid=#uid# </select></sqlMap>

?

容易使用ibatis

读书人网 >互联网

热点推荐