【Mybatis】Helloworld 怼烎@ 2022-06-06 08:15 183阅读 0赞 Mybatis和Hibernate一样是一个Nosql工具,什么是Nosql?原本,应该在Java中写sql语句,才能对Mysql等数据库进行增删改查,但是经过Nosql工具之后,在Java你只需要一个类方法就能对数据库进行增删改查,当然原本sql的语句还是要写的,只是像Mybatis和Hibernate这些Nosql工具将sql语句和java代码分离开来。 ![20171103155028402][] 且不论这种工具到底好不好,甚至个人感觉有点没事找事,然而,现在的企业好,业内的java ee公司好,都喜欢用这种框架,所以,你基本必须要会。 **一、Mybatis下载、配置** Mybatis和网页其实并没有任何的关系,它只是处理java和数据库之间交流所使用的。所以,利用一个java工程,而非eclipse里面的Dynamic Web Project,就能说明这个问题。 先贴上最终完成的Mybatis Helloworld的项目结构。 ![20171103155457043][] 你首先需要两个jar,一个是连接Mysql必须的jar,这里以Mysql做例子,Orcale等数据库则换成相应的jar包即可,可以到Mysql的官网下载:[https://dev.mysql.com/downloads/connector/j/][https_dev.mysql.com_downloads_connector_j],下载之后取走其中的mysql-connector-java-5.1.44-bin.jar到你的工程目录,一般在工程目录新建一个lib,放这些包。 ![20171103155855097][] 然后下载Mybatis,[http://www.softpedia.com/get/Programming/Other-Programming-Files/MyBatis.shtml][http_www.softpedia.com_get_Programming_Other-Programming-Files_MyBatis.shtml],同样取走里面的核心jar,放到你的工程目录的lib下。 ![20171103160340083][] 之后在eclipse中设置你这个java项目加载这些lib,Mybatis的配置就正式完成了。 ![20171103160612828][] **二、Mybatis的Helloworld** 目标是将以下的这张已经被举了无数次个栗子废表User里面的数据: ![20171103161201649][] 在Java的控制台打印出来,当然,你都会打印了,将数据组织到spring mvc或者strust2也就是这个意思了。 ![20171103162129863][] 1、首先,先在src目录下新建3个包test.dao,test.entity,test.mapper,src是源代码的意思。 ![20171103162425156][] 然后在test.entity下新建如下的User.java: package test.entity; public class User { private Integer id; private String username; private String password; 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 String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 这堆漫长而无聊的getter和setter完全可以在写完3个变量private Integer id;private String username;private String password;利用alt+shift+s让eclipse自己生成,这里在java三个变量对应数据库mysql里面的三个字段。 ![20171103162643160][] 2、之后在根目录完成Mybatis配置的configuration.xml,这个文件囊括了整个Mybatis的信息,以后需要Mybatis沟通数据库的其它表和java工程的联系,在这个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> <typeAliases> <typeAlias type="test.entity.User" alias="User" /><!-- 指明有一个实体User,其配置文件的java文件是test.entity下的User --> </typeAliases> <!-- 写明关于mysql的连接信息 --> <environments default="development"> <environment id="development"> <transactionManager type="jdbc" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="test/mapper/User.xml" /><!-- 指明在user这个表中所包含常用sql方法,test/mapper/User.xml是一个指明java方法和sql语法联系的xml文件 --> </mappers> </configuration> 3、之后在test.mapper包下新建一个User.xml,这个文件指明了sql语句和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"> <!-- 指明select * from user where id=#{id}这条sql对应test.dao下的UserDao.java下的findById方法 --> <!-- 同时findById的返回是一个User类型的类 --> <mapper namespace="test.dao.UserDao"> <select id="findById" parameterType="HashMap" resultType="User"> select * from user where id=#{id} </select> </mapper> 4、然后在test.dao下新建一个UserDao.java,这个文件写一个接口就行。 package test.dao; import test.entity.User; public interface UserDao { public User findById(Integer id); } 经历了上面四个步骤,Mybatis的配置就完成了,在src根目录下新建一个MybatisHelloworld.java就能看到最终效果了 import java.io.IOException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import test.dao.UserDao; import test.entity.User; public class MybatisHelloworld { /* mybatis连接数据库的方法,未来可以靠spring写在xml让工程一上来就走这段代码,直接完成注入 */ private static SqlSessionFactory getSessionFactory() { SqlSessionFactory sessionFactory = null; String resource = "configuration.xml"; try { sessionFactory = new SqlSessionFactoryBuilder().build(Resources .getResourceAsReader(resource)); } catch (IOException e) { e.printStackTrace(); } return sessionFactory; } public static void main(String[] args) { SqlSession sqlSession = getSessionFactory().openSession();// 连接数据库 UserDao userDao = sqlSession.getMapper(UserDao.class);// Nosql直接得到一个UserDao User user = userDao.findById(1);// 直接可以利用getter setter读写数据库里面的数据 System.out.println("id为1的username=" + user.getUsername()); System.out.println("id为1的password=" + user.getPassword()); } } [20171103155028402]: /images/20220606/35cc4787511f4653a2d56b8753cd1947.png [20171103155457043]: /images/20220606/ac77b8f61cd34fdeb00283a3f25b2b87.png [https_dev.mysql.com_downloads_connector_j]: https://dev.mysql.com/downloads/connector/j/ [20171103155855097]: /images/20220606/0eea18660198424186a0f35afeae2c7f.png [http_www.softpedia.com_get_Programming_Other-Programming-Files_MyBatis.shtml]: http://www.softpedia.com/get/Programming/Other-Programming-Files/MyBatis.shtml [20171103160340083]: /images/20220606/683aa404504a47d185286c9c2b7aee86.png [20171103160612828]: /images/20220606/d643f32d5e7f4220aa38179b041a0f73.png [20171103161201649]: /images/20220606/06da4b7c18174a858c9c90cf61328a41.png [20171103162129863]: /images/20220606/a2ca5da1587243d09c4d0faaf61080db.png [20171103162425156]: /images/20220606/d901abd833c540ae941d9170eeeed68b.png [20171103162643160]: /images/20220606/2aad6ce809d7414bbb1a81ba1b0c7cca.png
还没有评论,来说两句吧...