mybatis入门——mybatis使用实例
来源:互联网 发布:js 时间间隔秒 编辑:程序博客网 时间:2024/05/25 01:36
mybatis区别于其他ORM工具的地方是,他不需要dao成实现类,只提供接口,数据库操作的方法写到配置文件中。
贴个例子来理解下:
测试项目结构:
mybatis-config.xml:
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <environments default="yitu"> <environment id="yitu"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/yitu"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 配置映射文件 --> <mappers> <mapper resource="com/etoak/dao/CityDaoIf-mapper.xml"/> </mappers></configuration>
CityDaoIf-mapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.etoak.dao.CityDaoIf" > <insert id="addCity" parameterType="com.etoak.bean.City"> insert into city values(null,#{pid},#{name}); </insert> <delete id="delCityById" parameterType="java.lang.Integer"> delete from city where id=#{id}; </delete> <update id="updateCity" parameterType="com.etoak.bean.City"> update city set pid=#{pid},name=#{name} where id=#{id}; </update> <!-- resultMap: 返回数据类型 需要在下文中解释 --> <select id="selectCityById" parameterType="java.lang.Integer" resultMap="city"> select * from city where id=#{id}; </select> <!-- 这里返回的是list,但list里面存放的还是city对象,所以还是city --> <select id="selectAllCitys" resultMap="city"> select * from city; </select> <select id="selectCityCount" resultType="java.lang.Integer"> select count(*) from city; </select> <select id="selectCityByPage" parameterType="java.util.Map" resultMap="city"> select * from city limit #{start},#{max}; </select> <!-- 返回类型解释 --> <resultMap type="com.etoak.bean.City" id="city"> <result property="id" column="id"/> <result property="pid" column="pid"/> <result property="name" column="name"/> </resultMap></mapper>
CityDaoIf.java
package com.etoak.dao;import java.util.List;import java.util.Map;import com.etoak.bean.City;public interface CityDaoIf { /** * 使用mybatis时需注意: * 1 添加、删除、修改 返回值为 int类型 * 影响的行数 ==1 判断是否成功 * 2 如果方法涉及到传入的参数量多余一条;需要封装成map */ public int addCity(City city); public int delCityById(Integer id); public int updateCity(City city); public City selectCityById(Integer id); public List<City> selectAllCitys(); public int selectCityCount(); // map: start end public List<City> selectCityByPage(Map map);}
MybatisFactory.java
package com.etoak.factory;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MybatisFactory { private static SqlSessionFactory factory; static{ try { Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); factory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public static SqlSessionFactory getSqlSessionFactory(){ return factory; }}
实体类City.java
package com.etoak.bean;public class City implements java.io.Serializable { private Integer id; private Integer pid; private String name; public City() { } public City(Integer pid, String name) { this.pid = pid; this.name = name; } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public Integer getPid() { return this.pid; } public void setPid(Integer pid) { this.pid = pid; } public String getName() { return this.name; } public void setName(String name) { this.name = name; }}
测试类:
package com.etoak.test;import java.util.HashMap;import java.util.Map;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import com.etoak.bean.City;import com.etoak.dao.CityDaoIf;import com.etoak.factory.MybatisFactory;public class Test { public static void main(String[] args){ SqlSessionFactory factory = MybatisFactory.getSqlSessionFactory(); SqlSession session = factory.openSession(); CityDaoIf dao = session.getMapper(CityDaoIf.class); int add = dao.addCity(new City(55,"e")); int del = dao.delCityById(4); City c = new City(); c.setId(3); c.setPid(1); c.setName("aaaa"); int update = dao.updateCity(c); City city = dao.selectCityById(3); Map map = new HashMap(); map.put("start", 1); map.put("max", 5); //List list = dao.selectCityByPage(new Map()); //System.out.println("add="+add+"del="+del+"update="+update); System.out.println(dao.selectCityByPage(map)); session.commit(); session.close(); }}
0 0
- mybatis入门——mybatis使用实例
- mybatis入门——实例
- Mybatis入门实例(三)——使用MyBatis Generator生成DAO
- MyBatis入门实例 ——configuration.xml 分类: MyBatis
- Mybatis学习教程—— Mybatis入门实例
- MyBatis入门实例 ——configuration.xml
- MyBatis入门实例 ——MyBatisUtil.java
- MyBatis入门实例 ——Mapper.xml
- MyBatis入门实例 ——DaoImpl.java
- MyBatis经典入门实例
- MyBatis经典入门实例
- MyBatis经典入门实例
- mybatis入门实例
- mybatis入门实例
- MyBatis入门实例简介
- MyBatis入门实例
- MyBatis经典入门实例
- MyBatis入门实例简介
- 强大的vim配置文件,让编程更随意
- 顺时针打印矩阵
- SQL 各种锁等待类型 wait type
- javascript判断变量是否存在
- java线程interrupt()方法和线程终止方式
- mybatis入门——mybatis使用实例
- JDBC 数据库连接池 -Dbcp -C3p0
- Java 获取web项目根目录 RootPath
- 设计模式之抽象工厂模式---abstract factory
- Velocity学习整理
- LeetCode: Valid Anagram
- AOJ 2538 Stack Maze
- 黑马程序员——java基础——ServerSocket、Socket构造方法解析
- hdu4089 Activation