老师看看什么原因
package com.jdbc.news;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.jdbc.hrapp.entity.Employee;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Properties;
import java.util.Scanner;
public class InsertNews implements Command {
@Override
public void execute() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入新闻标题");
String title = sc.next();
System.out.println("请输入新闻内容 ");
String content = sc.next();
System.out.println("请输入新闻日期,按年-月-日 的形式输入");
String time = sc.next();
java.util.Date udTime = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
udTime = sdf.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
long times = udTime.getTime();
java.sql.Date create_time = new java.sql.Date(times);
Properties properties = new Properties();
String propertyFile = InsertNews.class.getResource("/com/jdbc/news/druid-config.properties").getPath();
Connection conn = null;
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
conn.setAutoCommit(false);
String sql = "INSERT INTO news(title,content,create_time) VALUES(?,?,?)";
QueryRunner qr = new QueryRunner();
int cnt = qr.update(conn,sql,new Object[]{title,content,create_time});
conn.commit();
if (cnt == 1){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
} catch (Exception e) {
e.printStackTrace();
try {
if (conn != null && !conn.isClosed()){
conn.rollback();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}finally {
try {
if (conn != null && !conn.isClosed()){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
package com.jdbc.news;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.jdbc.hrapp.good.SelectGoods;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.util.List;
import java.util.Properties;
public class SelectNews implements Command {
@Override
public void execute() {
Properties properties = new Properties();
String propertyFile = SelectNews.class.getResource("/com/jdbc/news/druid-config.properties").getPath();
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
QueryRunner qr = new QueryRunner(dataSource);
List<News> list = qr.query("SELECT * FROM news",new BeanListHandler<>(News.class));
for (News n : list){
System.out.println(n.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.jdbc.news;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.jdbc.hrapp.good.SelectGoods;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;
import java.util.Scanner;
public class UpdateNews implements Command {
@Override
public void execute() {
Command command = new SelectNews();
command.execute();
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的新闻id");
Integer id = sc.nextInt();
Properties properties = new Properties();
String propertyFile = UpdateNews.class.getResource("/com/jdbc/news/druid-config.properties").getPath();
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
QueryRunner qr = new QueryRunner(dataSource);
List<News> list = qr.query("SELECT * FROM news WHERE id = ?",new BeanListHandler<>(News.class),new Object[]{id});
for (News n : list){
System.out.println(n.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("请输入要修改的新闻标题");
String title = sc.next();
System.out.println("请输入要修改的新闻内容");
String content = sc.next();
Connection conn = null;
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
conn.setAutoCommit(false);
QueryRunner rs = new QueryRunner();
String sql = "UPDATE news SET title = ?, content = ? WHERE id = ?";
int cnt = rs.update(conn, sql, new Object[]{title,content,id});
conn.commit();
if (cnt == 1){
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
} catch (Exception e) {
e.printStackTrace();
try {
if (conn != null && !conn.isClosed()) {
conn.rollback();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} finally {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
package com.jdbc.news;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import java.util.Scanner;
public class DeleteNews implements Command {
@Override
public void execute() {
Command command = new SelectNews();
command.execute();
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除新闻id");
Integer id = sc.nextInt();
Properties properties = new Properties();
String propertyFile = DeleteNews.class.getResource("/com/jdbc/news/druid-config.properties").getPath();
Connection conn = null;
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
conn.setAutoCommit(false);
String sql = "DELETE FROM news WHERE id = ?";
QueryRunner qr = new QueryRunner();
int cnt = qr.update(conn,sql,new Object[]{id});
conn.commit();
if (cnt == 1){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
} catch (Exception e) {
e.printStackTrace();
try {
if (conn != null && !conn.isClosed()){
conn.rollback();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}finally {
try {
if (conn != null && !conn.isClosed()){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
package com.jdbc.news;
import java.util.Scanner;
public class DBUtilNews {
public static void menu(){
System.out.println("欢迎来到新闻管理系统");
System.out.println("========================");
System.out.println(" 1. 添加新闻");
System.out.println(" 2. 查看新闻");
System.out.println(" 3. 编辑新闻");
System.out.println(" 4. 删除新闻");
System.out.println(" 5. 退出系统");
}
public static void main(String[] args) {
Command command = null;
while (true){
menu();
Scanner sc = new Scanner(System.in);
System.out.println("请输入1-5之间的数字进行操作");
int temp = sc.nextInt();
if (temp == 5){
break;
}
switch (temp){
case 1:
command = new InsertNews();
command.execute();
break;
case 2:
System.out.println("新闻列表如下");
command = new SelectNews();
command.execute();
break;
case 3:
command = new UpdateNews();
command.execute();
break;
case 4:
command = new DeleteNews();
command.execute();
break;
default:
System.out.println("输入错误,请重新输入1-5之间的数字");
}
}
}
}
正在回答
同学你好,是的,这样也是可以解决这个问题
initialSize :连接池启动时创建的初始化连接数量
maxActive :连接池中可同时连接的最大的连接数
如果写成一样的话,初始化数量跟最大连接数一致,导致连接数被占满,就会出现这个问题
如果将初始化数量调小,最大连接数变大,从而就可以避免连接数被占满
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 9401 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星