[http-nio-8080-exec-7] com.alibb druid.pool.DruidDataSource.info {dataSource-1} inited

今天在执行插入操作的时候,出现了问题(看业务层,明明没有插入成功,但是result却改变了),但在查询的时候很正常

img


[http-nio-8080-exec-7] com.alibaba.druid.pool.DruidDataSource.info {dataSource-1} inited
代码如下
资源包
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/aiboxdemo?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
initialSize=10
maxActive=20
minIdle=5
maxWait=1800
工具类如下public class DbUtils {

private static DruidDataSource ds;
private static ThreadLocal<Connection> THREAD_LOCAL = new ThreadLocal();

static {
    Properties properties = new Properties();
    InputStream inputStream = DbUtils.class.getResourceAsStream("../database.properties");
    try {
        properties.load(inputStream);
        ds = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);

    } catch (Exception e) {

        e.printStackTrace();
    }
}

public static Connection getConnection() {
    Connection connection = THREAD_LOCAL.get();
    try {
        if (connection == null) {
            connection = ds.getConnection();
            THREAD_LOCAL.set(connection);

        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return connection;
}

public static void begin() {
    Connection connection = null;
    try {
        connection = getConnection();
        connection.setAutoCommit(false);
    } catch (SQLException e) {
        e.printStackTrace();
    }

}

public static void commit() {
    Connection connection = null;
    try {
        connection = getConnection();
        connection.commit();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        closeAll(connection, null, null);
    }
}

public static void rollback() {
    Connection connection = null;
    try {
        connection = getConnection();
        connection.rollback();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        closeAll(connection, null, null);
    }
}

public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {

    try {
        if (resultSet != null) {
            resultSet.close();
        }
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
            THREAD_LOCAL.remove();
        }
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
}

}
controller
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");

    String username = request.getParameter("username");
    String password = request.getParameter("password");

    System.out.println("username="+username+"password"+password);
    User user=new User(null,username,password,null);
    UserregisterService userregisterService=new UserregisterServiceImpl();
    userregisterService.register(user);

// 登陆成功

      response.sendRedirect("main.jsp");

}

service层
public class UserregisterServiceImpl implements UserregisterService {
private userDao userDao = new userDaoImpl();

@Override
public int register(User user) {

    int result = 0;
    try {
        DbUtils.begin();
        System.out.println("数据到了这里");
        result = userDao.insert(user);
        if (result>0){
            System.out.println("插入成功啦");
            return result;
        }
        DbUtils.commit();
    } catch (Exception e) {
        DbUtils.rollback();
        e.printStackTrace();
    }
    return result;
}

}
dao层
public int insert(User user) {

    try {
        int result= queryRunner.update(DbUtils.getConnection(), "insert into ai_user(userName,userPassword) values (?,?);",user.getUserName(),user.getUserPassword());

        return result;
    } catch (SQLException e) {
       e.printStackTrace();
    }
    return 0;
}

报错原因是MySQL在高版本需要指明是否进行SSL连接

需要加上 useSSL=false

e.g.

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/aiboxdemo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=root
initialSize=10
maxActive=20
minIdle=5
maxWait=1800