SSM框架——Mybatis框架:IDEA创建基于maven的Mybatis框架的超详细知识点总结。适合小白,新手
2020-03-14 18:22
633 查看
我们首先得知道SSM框架中的三框架:
- S——Spring
- S——Spring MVC
- M——Mybatis
今天我们就来详细讲讲如何创建一个Mybatis框架并且用到的知识点。
1.当我们创建了一个maven的基本java工程那么首先就得配置pom.xml,也就是maven工程的主配置文件。
配置pom.xml:就是导入我们需要用到的jar包坐标。
<!--packaging:打包类型--> <packaging>jar</packaging> <dependencies> <!--mybatis用到的jar包:--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <!-- 数据库驱动包:--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!--日志组件包:--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--单元测试包:--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>包之间的版本信息无所谓,但是尽量不要用比我这里还低的版本,这里可以百度maven的中心jar仓库自行查看。
2.配置Mybatis的配置文件SqlMapConfig.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 可以在标签内部配置连接数据库的信息,也可以通过属性引用外部配置文件信息 resoucer属性: 用于指定配置文件的位置,是按照类路径的写法来的,并且必须存在于类路径下。--> <!-- 配置properties--> <properties resource="jdbcConfig.properties"></properties> <!-- 使用typeAliases配置别名,它只能配置domain中类的别名 --> <typeAliases> <package name="org.lmj.domain"></package> </typeAliases> <!-- 配置环境--> <environments default="mysql"> <!-- 配置mysql环境--> <environment id="mysql"> <!-- 配置事务--> <transactionManager type="JDBC"></transactionManager> <!-- 配置连接池--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 配置映射文件的位置--> <mappers> <!-- <mapper resource="org/lmj/dao/UserDao.xml"></mapper>--> <!-- package标签用于指定dao接口所在的包,指定了之后就不需要再写mapper以及resource或者class了--> <package name="org.lmj.dao"/> </mappers> </configuration>
3.配置jdbcConfig.properties:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/ jdbc.username= jdbc.password=
配置log4j.properties:(这里推荐直接复制粘贴)
# Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal log4j.rootCategory=debug, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n # LOGFILE is set to be a File appender using a PatternLayout. log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE.File=e:\axis.log log4j.appender.LOGFILE.Append=true log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
4. 在resources文件夹中创建一个与src.java下的路径相同的路径:
5.在持久层编写实现类接口:
public interface UserDao { //查询所有用户 List<User> findAll(); //保存用户 void saveUser(User user); //修改用户 void updateUser(User user); //根据id删除用户 void deleteUser(Integer userId); //根据id查询用户信息 User findUserId(Integer userId); //根据名称模糊查询用户信息 List<User> findByName(String username); }
6.在resources下的org.lmj.dao.User.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"> <mapper namespace="org.lmj.dao.UserDao"> <!-- 查询所有--> <select id="findAll" resultType="org.lmj.domain.User"> select * from user ; </select> <!-- 保存用户 parameterType:告诉传入的类型 --> <insert id="saveUser" parameterType="org.lmj.domain.User"> insert into user(username,address,sex,birthday)value(#{username},#{address},#{sex},#{birthday}); </insert> <!-- 修改用户 --> <update id="updateUser" parameterType="org.lmj.domain.User"> update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}; </update> <!-- 删除用户 --> <delete id="deleteUser" parameterType="Integer"> delete from user where id = #{id}; </delete> <!-- 根据id查询用户--> <select id="findUserId" parameterType="Integer" resultType="org.lmj.domain.User"> select * from user where id = #{id}; </select> <!-- 根据名称查询用户--> <select id="findByName" parameterType="string" resultType="org.lmj.domain.User"> select * from user where username like #{username}; </select> </mapper>
对了大家不要忘记编写实体类
7.test文件夹下编写测试方法进行测试
/** * 测试mybatis的CRUD操作 */ public class MabatisText { private InputStream in; private SqlSession session; private UserDao userDao; //公有方法,加载配置信息 @Before//在测试方法执行之前执行 public void init() throws Exception{ //读取配置文件,生成字节输入流 in = Resources.getResourceAsStream("SqlMapConfig.xml"); //获取SqlSessionFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); //获取SqlSession对象 session = factory.openSession(); //获取dao的代理对象 userDao = session.getMapper(UserDao.class); } @After//用于在测试方法执行之后执行 public void destroy() throws Exception{ //提交事务 session.commit(); //释放资源 session.close(); in.close(); } @Test public void textFindAll(){ //执行查询所有方法 List<User> users = userDao.findAll(); for (User user : users){ System.out.println(user); } } @Test public void textSave(){ User user = new User(); user.setUsername("saveUser"); user.setAddress("上海"); user.setSex("女"); user.setBirthday(new Date()); userDao.saveUser(user); } @Test public void textUpdate(){ User user = new User(); user.setId(49); user.setUsername("updateUser"); user.setAddress("北京"); user.setSex("男"); user.setBirthday(new Date()); userDao.updateUser(user); } @Test public void textDelete(){ //删除方法 userDao.deleteUser(71); } @Test public void textFindone(){ //查询用户id方法 User userId = userDao.findUserId(49); System.out.println(userId); } @Test public void textFindname(){ //查询用户名称方法 List<User> username = userDao.findByName("%王%"); for (User user : username){ System.out.println(user); } }
如果有什么不对或者需要补充的地方欢迎给我留言
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- (超详细、适合新手入门)IDEA+Maven 整合SSM框架实现简单的增删改查
- 超级详细的新手在Idea中使用maven配置Spring+springmvc+mybatis(SSM)框架步骤
- 超详细 idea ssm+maven 项目实例(适合新手)
- IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合
- IDEA-Maven整合SSM框架,超详细教程(Spring+SpringMVC+Mybatis)
- IDEA下创建Maven项目,并整合使用Spring、Spring MVC、Mybatis框架
- SSM框架使用Maven构建环境详细整合教程(Spring+SpringMVC+MyBatis)
- SSM基于注解配置Spring4.1.6、springMVC4.1.6、mybatis3.2.8的maven框架搭建
- idea创建maven项目,本教程适合各类小白(一)
- ssm框架之Spring和Mybatis整合(适合新手)
- IntelliJ IDEA下SSM框架整合、创建Maven项目流程(Spring + SpringMVC + MyBatis)
- [置顶] SSM框架——详细整合教程(Spring+SpringMVC+MyBatisPlus+Maven)
- 使用Idea创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合
- 基于maven搭建ssm开发框架(1) mybatis和spring的整合
- IDEA创建maven项目 整合SSM框架
- 在IDEA中搭建基于Maven的SSM框架(一)
- SSM框架整合(IntellIj IDEA+Maven+Spring+SpringMVC+MyBatis)之Spring Framework
- SSM框架系列学习总结0之IDEA+Maven+SSM整合
- 基于Maven的SSM框架的搭建(Spring+SpringMVC+MyBatis)
- 使用idea搭建一个简单的SSM框架:(1)使用idea创建maven项目