tomcat

1、创建web和java EE方法:

      1 .首先创建一个项目

2.创建好项目之后, 在目录位置右击鼠标,找到添加框架支持

 

3.里面有web和java EE

 

2、数据库连接池:

1.编写程序的准备工作,连接数据库:

​
// 管理数据库连接的一个容器(Connection)
   *它允许应用程序重复使用一个现有的数据库连接;
      *避免数据库连接遗漏

     //1、导入jar包
        //2、定义配置文件

//        3、加载配置文件
        Properties pro = new Properties();
        pro.load(new FileInputStream("jdbc-demo/src/pro.properties"));

//        4、获取连接池对象
        DataSource ds = DruidDataSourceFactory.createDataSource(pro);

//        5、获取数据库连接
        Connection conn = ds.getConnection();

​

2.pro配置文件:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///
要连接的数据库名称?useSSL=false&useServerPrepstmts=true
username=root
password=密码
#初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000

3.注意、注入问题:

sql注入就是一种通过操作输入来修改后台操作语句,把sql命令插入到web表单递交或者输入域名或者页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,造成数据库信息泄露、损坏等后果。

我们都需要对用户输入的数据进行过滤处理。

-- 注入   以任意用户名和特定密码登录系统
//      String name = "张三";
//      String pwd = "1234";
        String name = "dfghjk";(随意输入)
        String pwd = " ' or '1' = '1 ";
        String sql="select * from user where username='"+name+"'  && password = '"+pwd+"'";
        System.out.println(sql);

解决注入问题:

1、普通用户与系统管理员用户的权限要有严格的区分。

在权限设计中,对于终端用户,即应用软件的使用者,不提供数据库对象的建立、删除等权限。

2、强制使用参数化语句。

用户的输入的内容必须进行过滤,或者使用参数化的语句来传递用户输入的变量,而不是直接嵌入到SQL语句。

4.connection事物管理:

try {
            //开启事务  在执行语句前
            conn.setAutoCommit(false);
            int count = statement.executeUpdate(s1); //执行语句
            System.out.println(count);
            int i=3/0;
            count1 = statement.executeUpdate(s2);
            System.out.println(count1);

            //提交事务  当程序执行成功结束时
            conn.commit();
        } catch (Exception e) {
            //回滚事务  当程序出现错误
            conn.rollback();
            throw new RuntimeException(e);
        }
        //一定要注意释放资源
        statement.close();
        conn.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值