Mybaits技术(1) Mybatis入门示例
Mybaits技术(一) Mybatis入门示例1. 搭建开发环境(1)新建一个Web工程,名称为MybatisFramework。?(2)将以下
Mybaits技术(一) Mybatis入门示例
1. 搭建开发环境
(1)新建一个Web工程,名称为MybatisFramework。
?
(2)将以下的JAR放到Web工程的lib下面:
Java代码??
- mybatis-3.0.6.jar??
- og4j-1.2.16.jar??
- classes12.jar??
?
(3)在src下面新建log4j.properties文件,该文件的内容如下:
Java代码??
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender??
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout??
- log4j.appender.stdout.layout.ConversionPattern=%d?%p?[%c]?-%m%n??
- log4j.logger.com.ibatis=debug??
- log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug??
- log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug??
- log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug??
- log4j.logger.java.sql.Connection=debug??
- log4j.logger.java.sql.Statement=debug??
- log4j.logger.java.sql.PreparedStatement=debug,stdout??
?
(4)在src下面新建mybatis.cfg.xml文件,该文件的内容如下:
Java代码??
- <?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>??
- ??????
- ????<environments?default="development">??
- ????????<environment?id="development">??
- ????????????<transactionManager?type="JDBC"?/>??
- ????????????<dataSource?type="POOLED">??
- ??????????????<property?name="driver"?value="oracle.jdbc.OracleDriver"?/>??
- ??????????????<property?name="url"?value="jdbc:oracle:thin:@localhost:1521:SID"?/>??
- ??????????????<property?name="username"?value="xxxx"?/>??
- ??????????????<property?name="password"?value="xxxx"?/>??
- ????????????</dataSource>??
- ????????</environment>??
- ????</environments>??
- ?????
- ????</configuration>??
?
?
2. 入门示例
(1)在Oracle数据库执行以下SQL,创建一个USER_INFO的表:
Java代码??
- --?Create?table??
- create?table?USER_INFO??
- (??
- ??ID??????????NUMBER(12)?not?null,??
- ??NAME????????VARCHAR2(50)??
- );??
- ??
- --Insert?data??
- insert?into?USER_INFO(ID,NAME)?values(1,'张三');??
?
(2)新建一个Java类UserInfo.java,该类的内容如下:
?
Java代码??
- package?com.user;??
- ??
- public?class?UserInfo?{??
- ????private?int?id;??
- ????private?String?name;??
- ??
- ????public?UserInfo()?{??
- ????}??
- ??
- ????public?UserInfo(String?name)?{??
- ????????this(0,?name);??
- ????}??
- ??
- ????public?UserInfo(int?id,?String?name)?{??
- ????????this.id?=?id;??
- ????????this.name?=?name;??
- ????}??
- ??
- ????public?int?getId()?{??
- ????????return?id;??
- ????}??
- ??
- ????public?void?setId(int?id)?{??
- ????????this.id?=?id;??
- ????}??
- ??
- ????public?String?getName()?{??
- ????????return?name;??
- ????}??
- ??
- ????public?void?setName(String?name)?{??
- ????????this.name?=?name;??
- ????}??
- ??
- ????@Override??
- ????public?String?toString()?{??
- ????????return?"ID:?"?+?id?+?",?Name:?"?+?name;??
- ????}??
- }??
?
(3)在com.user.sqlmap下面新建UserInfo.xml文件,该文件的内容如下:
?
Java代码??
- <?xml?version="1.0"?encoding="UTF-8"??>??
- ??
- <!DOCTYPE?mapper?PUBLIC???
- ????"-//mybatis.org//DTD?Mapper?3.0//EN"??
- ????"http://mybatis.org/dtd/mybatis-3-mapper.dtd">??
- ??
- <mapper?namespace="User">??
- ????<select?id="selectUser"?parameterType="int"?resultType="UserInfo">??
- ????<![CDATA[??
- ????????select?*?from?user_info?where?id?=?#{id}??
- ????]]>??
- ????</select>??
- </mapper>??
?
(4)将UserInfo.xml引用到mybatis.cfg.xml文件中,mybatis.cfg.xml文件更新后的内容如下:
Java代码??
- <?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>??
- ????<typeAliases>??
- ????????<typeAlias?alias="UserInfo"?type="com.user.UserInfo"?/>??
- ????</typeAliases>??
- ??????
- ????<environments?default="development">??
- ????????<environment?id="development">??
- ????????????<transactionManager?type="JDBC"?/>??
- ????????????<dataSource?type="POOLED">??
- ??????????????<property?name="driver"?value="oracle.jdbc.OracleDriver"?/>??
- ??????????????<property?name="url"?value="jdbc:oracle:thin:@localhost:1521:ORACLEDB"?/>??
- ??????????????<property?name="username"?value="oracle"?/>??
- ??????????????<property?name="password"?value="oracle"?/>??
- ????????????</dataSource>??
- ????????</environment>??
- ????</environments>??
- ?????
- ????<mappers>??
- ????????<mapper?resource="com/user/sqlmap/UserInfo.xml"?/>??
- ????</mappers>??
- </configuration>??
?
(5)新建一个测试Java类UserInfoTest.java,该类的具体内容如下:
Java代码??
- package?com.user;??
- ??
- import?java.io.IOException;??
- import?java.io.Reader;??
- ??
- import?org.apache.ibatis.io.Resources;??
- import?org.apache.ibatis.session.SqlSession;??
- import?org.apache.ibatis.session.SqlSessionFactory;??
- import?org.apache.ibatis.session.SqlSessionFactoryBuilder;??
- ??
- ??
- ??
- public?class?UserInfoTest?{??
- ??
- ????/**?
- ?????*?@param?args?
- ?????*?@throws?IOException??
- ?????*/??
- ????public?static?void?main(String[]?args)?throws?IOException?{??
- ????????String?resource?=?"mybatis.cfg.xml";??
- ????????Reader?reader?=?Resources.getResourceAsReader(resource);??
- ????????SqlSessionFactory?ssf?=?new?SqlSessionFactoryBuilder().build(reader);??
- ??????????
- ????????SqlSession?session?=?ssf.openSession();??
- ??????????
- ????????try?{??
- ????????????UserInfo?user?=?(UserInfo)?session.selectOne("User.selectUser",?"1");??
- ????????????System.out.println(user);??
- ????????}?catch?(Exception?e)?{??
- ????????????e.printStackTrace();??
- ????????}?finally?{??
- ????????????session.close();??
- ????????}??
- ????}??
- ??
- }??
?
(6)右键UserInfoTest 类,选择Run As Application,运行MyBaits操作数据库。
?
Java代码??
- log4j:WARN?No?appenders?could?be?found?for?logger?(org.apache.ibatis.logging.LogFactory).??
- log4j:WARN?Please?initialize?the?log4j?system?properly.??
- log4j:WARN?See?http://logging.apache.org/log4j/1.2/faq.html#noconfig?for?more?info.??
- 2012-02-11?21:44:01,750?DEBUG?[java.sql.PreparedStatement]?-==>??Executing:?select?*?from?user_info?where?id?=?????
- 2012-02-11?21:44:01,781?DEBUG?[java.sql.PreparedStatement]?-==>?Parameters:?1(String)??
- ID:?1,?Name:?张三 ?
?