maven 添加 删除 修改 查询

resource——mabatis-cofig.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>


    <!-- 1.配置环境,默认的环境id为mysql -->
    <environments default="mysql">
        <!-- 1.2.配置id为mysql的数据库环境 -->
        <environment id="mysql">
            <!-- 使用JDBC的事务管理 -->
            <transactionManager type="JDBC"/>
            <!-- 配置数据库连接信息(数据库连接池) -->
            <dataSource type="POOLED">
<!--                数据库驱动-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
<!--               连接数据库-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!--               数据库的账户名称-->
                <property name="username" value="root"/>
<!--             数据库的密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 2.配置Mapper的位置 -->
    <mappers>
        <mapper resource="mapper/UserDao.xml"/>
    </mappers>
</configuration>

resource-mapper-UserDao.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 表示命名空间 -->
<mapper namespace="cn.javabs.dao.UserDao">

    <!-- SQL语句 -->
<!--    全部查询-->
    <select id="findAllUser"  resultType="cn.javabs.entity.User">
        select * from  user
    </select>

<!--    添加-->
    <insert id="add" parameterType="cn.javabs.entity.User">
        insert  into user (username, address,sex,birthday)
        values (#{username},#{ address},#{sex},#{birthday})
    </insert>

<!--    删除-->
    <delete id="del" parameterType="int">
        delete from user where id= #{id}
    </delete>

<!--    修改-->
    <update id="Update" parameterType="cn.javabs.entity.User">
        update user set  username=#{username},address=#{address},sex=#{sex}  where id=#{id}
    </update>

<!--    通过id查询-->
    <select id="findUserById" parameterType="integer" resultType="cn.javabs.entity.User">
        select  * from  user  where id = #{id}
    </select>

<!--    模胡查询-->
    <select id="findUserByName" parameterType="String" resultType="cn.javabs.entity.User">
       select  * from  user where username like #{username}
    </select>

<!--    查询总条数-->
    <select id="findAllUserTotal" resultType="java.lang.Integer">
        select count(*) from user
        </select>

<!--条件查询-->
    <select id="findCondition"  resultType="cn.javabs.entity.User">
<!--        select  * from  user where 1=1-->
<!--        <if test="sex != null">-->
<!--          and  sex =#{sex}-->
<!--        </if>-->

<!--        <if test="username !=null">-->
<!--          and   username like #{username}-->
<!--      </if>-->

            select * from  user
            <where>
        <if test="sex != null">
        and  sex =#{sex}
        </if>
        <if test="username !=null">
        and username like #{username}
        </if>
        </where>

    </select>
</mapper>

main-java-cn.javabs.dao.UserDao

package cn.javabs.dao;

import cn.javabs.entity.User;

import java.util.List;

public interface UserDao {

    /**
     * 添加方法
     * @param user
     */
 void  add(User user);
    /**
     * 查询全部
     * @return
     */
    List<User> findAllUser();

    /**
     * 删除
     * @param i
     */
    void del(int i);

    /**
     * 修改
     * @param user
     */
    void Update(User user);

    /**
     * 根据id 查询
     * @param i
     * @return
     */
    User findUserById(int i);

   /**
    * 模糊查询
    * @return
    */
    List<User> findUserByName(String username);

   /**
    * 查询总条数
    * @return
    */
   int findAllUserTotal();

    /**
     * 条件查询
     * @param user
     * @return
     */
   List<User> findCondition(User user);
}

main-java-cn.javabs.entity

package cn.javabs.entity;

import java.util.Date;

/**
 * 持久化类
 */
public class User {
    private  Integer id;
    private  String username;
    private String address;
    private String sex;
    private Date birthday;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", address='" + address + '\'' +
                ", sex='" + sex + '\'' +
                ", birthday=" + birthday +
                '}';
    }

    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 getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

test-java-cn.javabs.test.MybatisTest


```java
package cn.javabs.test;

import cn.javabs.dao.UserDao;
import cn.javabs.entity.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;

public class MybatisTest {

    private  SqlSession sqlSession=null;
    private   UserDao userDao=null;

    @Before
    public void init()throws  IOException{
        // 1.读取配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        // 2.根据配置文件创建SQLSessionFactory SQL会话工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        // 通过工厂 开启SQLSession
         sqlSession = factory.openSession();
        //读取dao的代理对象
         userDao = sqlSession.getMapper(UserDao.class);

    }

    @After
    public  void  destory()throws  IOException{
        // 提交事务
        sqlSession.commit();
        // 关闭SQLSession
        sqlSession.close();

    }

    /**
     * 添加用户
     * @throws Exception
     */
    @Test
    public void  testAdd() throws Exception {


        User user = new User();
        user.setUsername("乔布斯");
        user.setSex("女");
        user.setAddress("江苏");
        userDao.add(user);


    }

    /**
     * 删除用户
     * @throws Exception
     */
    @Test
    public void  testDel() throws IOException {

        userDao.del(2);
    }


    /**
     * 修改用户
     * @throws IOException
     */
    @Test
    public void  testUpdate() throws IOException {
        User user = new User();
        user.setId(3);
        user.setUsername("任性");
        user.setSex("女");
        user.setAddress("河南");
        userDao.Update(user);

    }

    /**
     * 根据用户的id查询
     * @throws IOException
     */
    @Test
    public void  testFindUserById() throws IOException {
       User u= userDao.findUserById(1);
        System.out.println(u);

    }

    /**
     * 模糊查询
     * @throws IOException
     */
    @Test
    public void  testFindUserByName() throws IOException {
      String username="%任%";
       List<User> list = userDao.findUserByName(username);
        for (User u: list){
            System.out.println(u);
        }
    }

    /**
     * 查询总条数
     * @throws IOException
     */
    @Test
    public void  testFindUserTotal() throws IOException {
       int count = userDao.findAllUserTotal();
        System.out.println("count"+count);

    }

    /**
     * 按条件查询
     * @throws IOException
     */
    @Test
    public void  testCondition() throws IOException {
        User user = new User();
        user.setSex("女");
        user.setUsername("%任%");
        List<User> list= userDao.findCondition(user);
       for (User u :list ){
           System.out.println(u);
       }
    }


    /**
     * 全部查询
     * @throws Exception
     */
    @Test
    public void  testFind() throws Exception {

//        通过接口找findAll方法
        List<User> list = userDao.findAllUser();

//        采用foreach
        for (User u:list){
            System.out.println(u);
        }

//        迭代器的写法
        Iterator<User> it = list.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

改动1后的地方

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>

<!--        1.读取数据库信息-->
    <properties resource="jdbc.properties"/>

<!--    类型别名-->
    <typeAliases>
<!--        typeAlias 配置别名 只对这个类配置了-->
<!--        <typeAlias type="cn.javabs.entity.User"/>-->
<!--        对entity包下的所有类配置-->
        <package name="cn.javabs.entity"/>
    </typeAliases>

    <!-- 1.配置环境,默认的环境id为mysql -->
    <environments default="mysql">
        <!-- 1.2.配置id为mysql的数据库环境 -->
        <environment id="mysql">
            <!-- 使用JDBC的事务管理 -->
            <transactionManager type="JDBC"/>
            <!-- 配置数据库连接信息(数据库连接池) -->
            <dataSource type="POOLED">
<!--                数据库驱动-->
                <property name="driver" value="${driver}"/>
<!--               连接数据库-->
                <property name="url" value="${url}"/>
<!--               数据库的账户名称-->
                <property name="username" value="${username}"/>
<!--             数据库的密码-->
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 2.配置Mapper的位置 -->
    <mappers>
<!--       cn.javabs.dao 自动加载所有映射文件  有点问题-->
<!--        <package name="mapper/*"/>-->
        <mapper resource="mapper/UserDao.xml"/>
    </mappers>
</configuration>

UserDao.xml
返回类型小,起别名


```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">
<!-- namespace 表示命名空间 -->
<mapper namespace="cn.javabs.dao.UserDao">

    <!-- SQL语句 -->
<!--    全部查询-->
    <select id="findAllUser"  resultType="user">
        select * from  user
    </select>

<!--    添加-->
    <insert id="add" parameterType="user">
        <!--
            keyProperty  是持久化类的编号  对应的是 user 类的id
            keyColumn  是数据库中的字段名称 对应user 表的id
           resultType   是 返回结果 因为返回是编号 因此int
           erder       是 在插入语句之前before还是 ofter
        -->
       <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
           select LAST_INSERT_ID();
       </selectKey>
        insert  into user (username, address,sex,birthday)
        values (#{username},#{ address},#{sex},#{birthday})
    </insert>

<!--    删除-->
    <delete id="del" parameterType="int">
        delete from user where id= #{id}
    </delete>

<!--    修改-->
    <update id="Update" parameterType="user">
        update user set  username=#{username},address=#{address},sex=#{sex}  where id=#{id}
    </update>

<!--    通过id查询-->
    <select id="findUserById" parameterType="integer" resultType="user">
        select  * from  user  where id = #{id}
    </select>

<!--    模胡查询-->
    <select id="findUserByName" parameterType="String" resultType="user">
       select  * from  user where username like #{username}
    </select>

<!--    查询总条数-->
    <select id="findAllUserTotal" resultType="java.lang.Integer">
        select count(*) from user
        </select>

<!--条件查询-->
    <select id="findCondition"  resultType="user">
<!--        select  * from  user where 1=1-->
<!--        <if test="sex != null">-->
<!--          and  sex =#{sex}-->
<!--        </if>-->

<!--        <if test="username !=null">-->
<!--          and   username like #{username}-->
<!--      </if>-->

            select * from  user
            <where>
        <if test="sex != null">
        and  sex =#{sex}
        </if>
        <if test="username !=null">
        and username like #{username}
        </if>
        </where>

    </select>
</mapper>

jdbc.properties 文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root


```java
mybatis-config.xml
!--        配置:查询结果的字段名称与实体中书名名 的对应关系-->
<resultMap id="userMap" type="user">
<!--    1.主键字段的对应-->
    <id property="userId" column="id"/>

<!-- 2.非主键(普通)字段的对应    -->
    <result property="userName" column="username"/>
<!--    <result property="userSex" column="sex"/>-->
    <result property="userAddress" column="address"/>
<!--    <result property="Usersex" column="sex"/>-->
    <result property="userAddress" column="address"/>
    <result property="userBirthday" column="bitthday"/>
</resultMap>

此时User
package cn.javabs.entity;

import java.util.Date;

/**
 * 持久化类
 */
public class User {
    private  Integer userId;
    private  String userName;
    private String userAddress;
    private String  Usersex;
    private Date userBirthday;

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", userAddress='" + userAddress + '\'' +
                ", Usersex='" + Usersex + '\'' +
                ", userBirthday=" + userBirthday +
                '}';
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserAddress() {
        return userAddress;
    }

    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress;
    }

    public String getUsersex() {
        return Usersex;
    }

    public void setUsersex(String usersex) {
        Usersex = usersex;
    }

    public Date getUserBirthday() {
        return userBirthday;
    }

    public void setUserBirthday(Date userBirthday) {
        this.userBirthday = userBirthday;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven 是一个 Java 项目管理工具,可以用来管理项目中的依赖、构建、测试等。实现登录、修改删除和转账涉及到数据库操作,因此需要使用相关的依赖库。下面是一个简单的示例,使用 Maven 实现登录、修改删除和转账的功能: 1. 添加依赖库 在 pom.xml 文件中添加以下依赖库: ```xml <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> </dependencies> ``` 其中,mysql-connector-java 是 MySQL 的 JDBC 驱动库,用于连接 MySQL 数据库;commons-lang3 是 Apache 的常用工具库,用于生成随机字符串。 2. 实现登录功能 登录功能需要连接到 MySQL 数据库,查询用户名和密码是否匹配。可以使用 PreparedStatement 对象来预编译 SQL 语句,避免 SQL 注入攻击。 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class LoginDao { private String url = "jdbc:mysql://localhost:3306/test"; private String username = "root"; private String password = "root"; public boolean checkLogin(String username, String password) { try (Connection conn = DriverManager.getConnection(url, username, password); PreparedStatement stmt = conn.prepareStatement("SELECT * FROM user WHERE username = ? AND password = ?")) { stmt.setString(1, username); stmt.setString(2, password); ResultSet rs = stmt.executeQuery(); return rs.next(); } catch (SQLException ex) { ex.printStackTrace(); return false; } } } ``` 在上面的代码中,数据库连接的 URL、用户名和密码都是硬编码的,可以通过配置文件来进行配置。 3. 实现修改删除功能 修改删除功能需要对数据库进行更新操作,可以使用 PreparedStatement 对象来预编译 SQL 语句,避免 SQL 注入攻击。 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class UserDao { private String url = "jdbc:mysql://localhost:3306/test"; private String username = "root"; private String password = "root"; public boolean updateUser(String username, String newpassword) { try (Connection conn = DriverManager.getConnection(url, username, password); PreparedStatement stmt = conn.prepareStatement("UPDATE user SET password = ? WHERE username = ?")) { stmt.setString(1, newpassword); stmt.setString(2, username); int rows = stmt.executeUpdate(); return rows > 0; } catch (SQLException ex) { ex.printStackTrace(); return false; } } public boolean deleteUser(String username) { try (Connection conn = DriverManager.getConnection(url, username, password); PreparedStatement stmt = conn.prepareStatement("DELETE FROM user WHERE username = ?")) { stmt.setString(1, username); int rows = stmt.executeUpdate(); return rows > 0; } catch (SQLException ex) { ex.printStackTrace(); return false; } } } ``` 4. 实现转账功能 转账功能需要对数据库进行事务操作,避免数据不一致。可以使用 Connection 对象来创建事务,手动提交或回滚事务。 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class TransferDao { private String url = "jdbc:mysql://localhost:3306/test"; private String username = "root"; private String password = "root"; public boolean transfer(String from, String to, double amount) { try (Connection conn = DriverManager.getConnection(url, username, password); PreparedStatement stmt1 = conn.prepareStatement("UPDATE account SET balance = balance - ? WHERE username = ?"); PreparedStatement stmt2 = conn.prepareStatement("UPDATE account SET balance = balance + ? WHERE username = ?")) { conn.setAutoCommit(false); stmt1.setDouble(1, amount); stmt1.setString(2, from); stmt1.executeUpdate(); stmt2.setDouble(1, amount); stmt2.setString(2, to); stmt2.executeUpdate(); conn.commit(); return true; } catch (SQLException ex) { ex.printStackTrace(); return false; } } } ``` 在上面的代码中,使用 conn.setAutoCommit(false) 来关闭自动提交事务,使用 conn.commit() 提交事务,使用 conn.rollback() 回滚事务。 以上就是使用 Maven 实现登录、修改删除和转账的简单示例。当然,在实际开发中,还需要考虑安全性、性能等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值