mumei2018 发表于 2024-1-2 01:58:53

请问有没有详细的mybatis教学

本帖最后由 mumei2018 于 2024-1-2 02:00 编辑

JDBC已经跑动了 可是mybatis怎么都弄不好

请问有没有详细的mybatis教学 一步一步手把手教的那种

FishC 发表于 2024-1-2 01:59:56

当然有!MyBatis是一种持久层框架,它可以简化数据库访问的工作,提供了强大的SQL映射能力。下面我将为你提供详细的MyBatis教学。

首先,你需要在项目中引入MyBatis的依赖。如果你使用Maven进行项目管理,可以在pom.xml文件中添加如下依赖:

<dependencies>
    <!-- MyBatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.7</version>
    </dependency>
    <!-- JDBC驱动 -->
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.26</version>
    </dependency>
</dependencies>

接下来,需要创建一个MyBatis的配置文件mybatis-config.xml。这个文件包含了MyBatis的配置信息,例如数据库连接信息、Mapper映射文件位置等。示例配置如下:

<!-- mybatis-config.xml -->
<configuration>
    <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="123456"/>
            </dataSource>
      </environment>
    </environments>
    <mappers>
      <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

在配置文件中,你需要根据你的数据库情况修改数据库连接信息。

然后,你需要创建一个Mapper接口,用于定义数据库操作的方法。例如,我们创建一个UserMapper接口,用于操作用户表:

public interface UserMapper {
    User getUser(int id);
    List<User> getAllUsers();
    void addUser(User user);
    void updateUser(User user);
    void deleteUser(int id);
}

注意,这里的方法名要和Mapper映射文件中的SQL语句的id保持一致。

最后,你需要创建一个Mapper映射文件UserMapper.xml,该文件中包含了SQL语句和方法的映射关系。示例内容如下:

<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getUser" resultType="com.example.model.User">
      SELECT * FROM user WHERE id = #{id}
    </select>
    <select id="getAllUsers" resultType="com.example.model.User">
      SELECT * FROM user
    </select>
    <insert id="addUser">
      INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})
    </insert>
    <update id="updateUser">
      UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
    </update>
    <delete id="deleteUser">
      DELETE FROM user WHERE id=#{id}
    </delete>
</mapper>

注意,这里的namespace要和Mapper接口的包路径+接口名保持一致。

现在,你可以使用MyBatis进行数据库操作了。首先,创建一个SqlSessionFactory对象:

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

然后,通过SqlSessionFactory对象创建一个SqlSession对象:

SqlSession sqlSession = sqlSessionFactory.openSession();

接下来,你就可以使用Mapper接口中定义的方法进行数据库操作了。例如,获取所有用户信息:

UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getAllUsers();

最后,别忘了提交事务和关闭SqlSession对象:

sqlSession.commit();
sqlSession.close();

以上就是一个简单的MyBatis教学,希望对你有所帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

mumei2018 发表于 2024-1-2 02:02:02

FishC 发表于 2024-1-2 01:59
当然有!MyBatis是一种持久层框架,它可以简化数据库访问的工作,提供了强大的SQL映射能力。下面我将为你提 ...

可是我使用的jar包是8.2.0版本的 文件名如下mysql-connector-j-8.2.0

FishC 发表于 2024-1-2 02:02:24

mumei2018 发表于 2024-01-02 02:02
可是我使用的jar包是8.2.0版本的 文件名如下mysql-con ...

非常抱歉,我之前给出的代码中使用了错误的MySQL驱动版本。对于你使用的MySQL Connector/J 8.2.0版本的jar包,你只需要将其引入项目中即可正常使用。在pom.xml文件中添加如下依赖:<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.2.0</version>
</dependency>
或者如果你不使用Maven进行项目管理,可以把mysql-connector-java-8.2.0.jar文件直接拷贝到项目的lib目录下。

另外,在mybatis-config.xml配置文件中,你需要修改数据库连接信息,将driver、url、username和password属性的值改为你自己的数据库信息。

希望这次的回答能够帮助到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 请问有没有详细的mybatis教学