mybatis入门百分百
程序员文章站
2022-05-03 15:06:10
今天重新返回来看自己的mybatis,总结了一些更好入门的办法,下面用最简单的方法带领大家入门。 此处先引入类包的关系图片 1.构建一个==普通==maven项目 构建好之后向pom.xml添加一下依赖 2.创建数据库,并创建好实体类 ==切记实体类与数据库相互对应== 3.创建一个dao ==这里 ......
今天重新返回来看自己的mybatis,总结了一些更好入门的办法,下面用最简单的方法带领大家入门。
此处先引入类包的关系图片
1.构建一个==普通==maven项目
构建好之后向pom.xml添加一下依赖
<!--打包方式--> <packaging>jar</packaging> <dependencies> <!--引入mybatis--> <dependency> <groupid>org.mybatis</groupid> <artifactid>mybatis</artifactid> <version>3.5.2</version> </dependency> <!--mysql--> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>8.0.15</version> </dependency> <!--日志--> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.17</version> </dependency> <!--测试--> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.12</version> </dependency> </dependencies>
2.创建数据库,并创建好实体类
/** *@author xiaoxie *@date *@return mybaits 入门 */ //实体类需要跟表明一致 public class user { private integer id; private string username; private date birthday; private string sex; private string address; public integer getid() { return id; } public void setid(integer id) { this.id = id; } public string getusername() { return username; } public void setusername(string username) { this.username = username; } public date getbirthday() { return birthday; } public void setbirthday(date birthday) { this.birthday = birthday; } public string getsex() { return sex; } public void setsex(string sex) { this.sex = sex; } public string getaddress() { return address; } public void setaddress(string address) { this.address = address; } @override public string tostring() { return "user{" + "id=" + id + ", username='" + username + '\'' + ", birthday=" + birthday + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; } }
==切记实体类与数据库相互对应==
3.创建一个dao
==这里我们先弄明白最简单的查询==
/** *@author xiaoxie *@date *@return * 用户持久层接口 */ public interface userdao { // 查询所有 @select(select * from user) list<user> findall(); }
4.在resources
文件夹下面建立一个与一个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"> <!--mybatis主配置文件--> <configuration> <!--配置环境--> <environments default="mysql"> <!--配置mysql的环境--> <environment id="mysql"> <!--配置事务类型--> <transactionmanager type="jdbc"></transactionmanager> <!--配置数据源 连接池--> <datasource type="pooled"> <!--配置连接数据库的基本信息--> <property name="driver" value="com.mysql.cj.jdbc.driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test1?servertimezone=gmt%2b8"/> <property name="username" value="root"/> <property name="password" value="root"/> </datasource> </environment> </environments> <!--映射配置文件地址 映射配置文件是每个dao的配置文件--> <mappers> <mapper resource="cn/com/scitc/dao/userdaomapper.xml"></mapper> </mappers> <!--采用注解的方式 应该使用class属性指定被注解的dao全限定类名--> <mappers> <mapper class="cn.com.scitc.dao.userdao"></mapper> </mappers> </configuration>
这里讲解一一下里面的关系和作用
1.约束文件--可以直接从网上复制粘贴
<?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">
- mybatis主配置文件--相当于最外层的一个容器,所有的事务活动都在里面
<configuration> xxxxxx </configuration>
- 配置环境 ---相当于启动的准备
<environments default="mysql"> ......xxxxx </environments>
4.配置mysql的环境 --配置mysql的类型
==注意== environment 的id必须与environments的 defualt相同
<environment id="mysql"> xxxxx </environment>
5.配置事务类型 --默认为jdbc
<transactionmanager type="jdbc"></transactionmanager>
6.配置数据源
<datasource type="pooled"> xxxx常用的url username passsword即可 </ <datasource >
7.映射地址
<!--映射配置文件地址 映射配置文件是每个dao的配置文件--> <mappers> <mapper resource="cn/com/scitc/dao/userdaomapper.xml"></mapper> </mappers> <!--采用注解的方式 应该使用class属性指定被注解的dao全限定类名--> <mappers> <mapper class="cn.com.scitc.dao.userdao"></mapper> </mappers>
注意:1.采用xml的格式需要用resources指定映射文件位置
<mappers> <mapper resource="cn/com/scitc/dao/userdaomapper.xml"></mapper> </mappers>
2.采用注解的方法则用class指定映射文件位置
<mappers> <mapper class="cn.com.scitc.dao.userdao"></mapper> </mappers>
4.在resources下面创建与类相同的dao包,并在dao包下面创建映射文件userdaomapper.xml
<!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace dao权限类名===别名--> <mapper namespace="cn.com.scitc.dao.userdao"> <!--配置查询所有--> <select id="findall" resulttype="cn.com.scitc.domian.user" > select * from user </select> </mapper>
注意:
1.约束文件--可以直接从网上复制粘贴
2.mapper文件都以mapper进行配置 namespaces是指定我们的dao层中的具体接口,有了它,就能够识别是哪一个dao被调用。
3.接下来就是写出语法xml <select id="findall" resulttype="cn.com.scitc.domian.user" > select * from user </select>
警告:id是接口中定义的方法。
resulttype是指定的实体类
测试
public class mybatistest { public static void main(string[] args ){ // 1.读取配置文件 try { inputstream in = resources.getresourceasstream("mybatis-config.xml"); // 2.创建sqlsessionfactory工厂 sqlsessionfactorybuilder builder = new sqlsessionfactorybuilder(); sqlsessionfactory factory = builder.build(in); // 3.使用工厂产生sqlsession对象 sqlsession sqlsession = factory.opensession(); // 4.使用sqlsession创建dao接口代理对象 userdao userdao = sqlsession.getmapper(userdao.class); // 5.使用代理对象执行方法 list<user> users = userdao.findall(); for (user user : users){ system.out.println("对象有:"+user); } // 6.释放资源 sqlsession.close(); in.close(); } catch (ioexception e) { e.printstacktrace(); } } }
上一篇: 为什么值类型不允许显式定义无参构造函数