一步一步探索mybatis--mybatis项目的搭建

一直以来,对于mybatis的了解和使用都是旧项目的粘贴复制,没有系统的了解过。终于下定决心从头开始。。。。

注意:这里的项目搭建并没有与spring等框架进行整合!!!

言归正传....

数据库: oracle

开发工具: eclipse

项目结构:

一、数据层面 (忽略中文注释)

1、建表

--建表
CREATE TABLE users(
   id INT PRIMARY KEY, 
   NAME VARCHAR(20), 
   age INT
);

--插入字段
alter table users add (reg_time varchar2(60));
comment on column users.reg_time is '注册时间';
alter table users add (profession varchar2(100));
comment on column users.profession is '擅长的领域';
alter table users add (sex char(1));
comment on column users.sex is '性别';
alter table users add (Wizard_Class varchar2(100));
comment on column users.Wizard_Class is '修行体系的三大类';
alter table users add (Wizard_Level varchar2(100));
comment on column users.Wizard_Level is '修为细分为12个境界';
alter table users add (Wizard_Belong_to varchar2(100));
comment on column users.Wizard_Belong_to is '所属地区';

2、随意插入几条数据

insert into users (ID, NAME, AGE, REG_TIME, PROFESSION, SEX, WIZARD_CLASS, WIZARD_LEVEL, WIZARD_BELONG_TO, CERTIFICATE_NUM)
values (1, '孤傲苍狼', 1, '1544169442858', '狼拳', '1', 'THOUGHT', 'KNOW', 'DHG', '201910130251');

二、项目代码

1、新建一个web工程

2、引入jar包

mybatis-3.4.5.jar、mysql-connector-java-5.1.3-rc-bin.jar 、ojdbc14.jar

3、在classpath下新建数据库参数的配置文件 application.properties

#dev
dev.driver: oracle.jdbc.driver.OracleDriver
dev.url: jdbc:oracle:thin:@IP:1521/ORCL   #IP自己调整
dev.username: username                    #连接数据库的用户名
dev.password: password                    #连接数据库的密码

4、编写javabean,这里并没有什么值得注意的地方

 

/**
 * 一定要存在无参的构造方法,推荐对bean序列化
 */
public class Users implements Serializable {
	private static final long serialVersionUID = -2750219262718851379L;
	private Integer id;
	private String name;
	private String profession;
	private Integer age;
    //....省略其他的属性及getter和setter方法
}

5、编写Dao接口,这里也并没有什么值得注意的地方 

public interface UsersDao {
    /**
	 * 根据id获取user
	 * 
	 * @param id
	 * @return
	 */
	Users selectUsersById(Integer id);
}

6、对应于dao接口,这里新建一个usersMapper.xml

<?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">
<!--namespace 指向的包为UsersMapper接口 这是实现动态代理的条件之一 -->
<mapper namespace="com.mybatis.dao.UsersDao">
	<select id="selectUsersById" resultType="Users" parameterType="int">
		select * from users u where u.id = #{id}
	</select>
</mapper>

7、在classpath下新建mybatis的配置文件 mybatis-config.xml

<?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>
	<!-- properties -->
	<properties resource="application.properties"></properties>

	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true" /><!-- 自动转驼峰 -->
		<setting name="logImpl" value="STDOUT_LOGGING"/>
	</settings>
	
	<!-- typeAliases -->
	<typeAliases>
		<package name="com.mybatis.bean"/>
	</typeAliases>
	
	<!-- environments -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC">
				<property name="autoCommit" value="true"/>
			</transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${dev.driver}" />
				<property name="url" value="${dev.url}" />
				<property name="username" value="${dev.username}" />
				<property name="password" value="${dev.password}" />
			</dataSource>
		</environment>
	</environments>

	<!-- mapper -->
	<mappers>
		<!-- 映射器方式一 : xml dao 同时存在-->
		<mapper resource="com/mybatis/mapper/usersMapper.xml" />
	</mappers>
</configuration>

8、测试

public class ConnectionTest {
	public static void main(String[] args) {
            choiceTwo();
//          choiceOne();
	}
	
	public static void choiceTwo() {
        String resource = "mybatis-config.xml";
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = sessionFactory.openSession();
        UsersDao usersDao = session.getMapper(UsersDao.class);
        Users user = usersDao.selectUsersById(1);
        System.out.println(user);
	}
	
	public static void choiceOne() {
        String resource = "mybatis-config.xml";
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = sessionFactory.openSession();
        //需要修改usersMapper.xml文件
        //修改为 namespace="com.mybatis.mapper.usersMapper"
        String statement = "com.mybatis.mapper.usersMapper.selectUsersById";
        Users user = session.selectOne(statement, 1);
        System.out.println(user);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值