public Connection getNewConnection(){
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:mysql://localhost(或者你连的主机IP):3306/数据库名称","用户名","密码");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
这是一个连接mysql的例子
2. java web 怎么连接sql数据库
JAVA Web开发中与数据库的连接操作,配置:
1、新建数据库。
新建登录角色,在新建数据库的时候把数据库的所有权交给你新建的角色。用用户和密码控制数据库。保证数据库的安全。
2、编写context.xml文件 Xml文件的目的是封装用户和密码,也是封装的一种,方便操作。
以下为context.xml文件样例:
<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
name="jdbc/sampleHS"
type="javax.sql.DataSource"
maxActive="14"
maxIdle="10"
username="hstaoshu"
maxWait="5000"
driverClassName="org.postgresql.Driver"
password="hstaoshu"
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
</Context>
详细说明:
name="jdbc/sampleHS"里面的ssampHS是可改名称,建议根据需要自己命名;
username="hstaoshu"
password="hstaoshu"此两项为你新建的数据库登录角色用户名和密码信息,只有匹配 了才能访问。这里简单为了表示,把用户名和密码弄成了跟数据库名字一样。其实这是很不安全的。
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
这是连接数据库的URl,就像访问网站的地址一样。没有这个是无法访问数据库的。localhost:5432表示本地端口。一般不需要改动,如果你在配置数据库的时候改动过端口,那么你需要把它改回来。/hstaoshu是你的数据库名称。
其他选项请勿擅自改动。
3、编写DAO类。
DAO类的作用是与数据连接后,对数据库的一些操作的封装。封装的作用。为了更好的数据管理。
DAO是真正如何使用数据库的关键步骤,前两步只是部署和配置。
private static InitialContext context = null;
private DataSource dataSource = null;
//一般把跟数据库的连接放在DAO类的构造函数里,只要被实例化,就能和数据库连接。
public BookDAO() {
try {
if (context == null) {
context = new InitialContext();
}
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/sampleHS");
// 连接数据库,前面在context.xml文件配置里的URl
} catch (NamingException e2) {
e2.printStackTrace();
}
}
public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();// 获得数据源的连接对象
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
做完上面的三步操作,开发环境已经完全和数据库连接OK,可以开始数据库的操作了。一般来说,对数据库的操作语句都是提前封装好的。这样修改起来会对下面的代码影响降到最小。
如下:
// ------------------数据库操作语句代码封装------------------
/* 查看所有图书 */
private static final String SELECT_ALL_SQL = "SELECT * FROM book";
那么在使用的时候只要直接调用:
pstmt = conn.prepareStatement(SELECT_ALL_SQL);
3. 【web安全】怎么进行sql注入
1.POST注入,通用防注入一般限制get,但是有时候不限制post或者限制的很少,这时候你就可以试下post注入,比如登录框、搜索框、投票框这类的。另外,在asp中post已被灶纳发扬光大,程序员喜欢用receive来接受数据,这就造成了很多时候get传递的参数通过post/cookie也能传递,这时如果恰好防注入程序只限制了get,因此post注入不解释
2.cookie注入,原理同post注入,绕过相当多通用防注入
3.二次注入,第一次注入的数据可能不会有效,但是如果将来能在某个页面里面被程序处理呢?注入来了……
4.csrf,适合后台地址已知并且存在已知0day,可以试试用csrf劫持管理员来进行操作(这招其实不属于sql注入了)
5.打碎关键字,比如过滤select,我可以用sel/**/ect来绕过,这招多见于mysql
6.有时候也可以sELeCT这样大小写混淆绕过
7.用chr对sql语句编码进行绕过
8.如果等于号不好使,可以试试大于号或者小于号,如果and不好使隐皮没可以试试or,这样等价替换
9.多来几个关键字确定是什么防注入程序,直接猜测源码或者根据报错关键字握源(如"非法操作,ip地址已被记录")把源码搞下来研究
10.记录注入者ip和语句并写入文件或数据库,然而数据库恰好是asp的,插马秒杀
4. 用LINQtoSQL创建Web应用系统(一)
在新的 Net Framework 平台上 Microsoft发布了LINQ(C# VB Net ) 集成语言查询(Language Integrated Query) 也就是通过编程语言来查询数据
*数据库 (LINQ to SQL)
*DataSet 数据集(LINQ to Dataset)
*XML文档 (LINQ to XML)
*实体对象 (LINK to Entities)
本文将演示如何在ASP NET 平台上 使用LINQ to SQL构建多层的Web应用程序 在当前的编程领域中 创建N Tier应用程序成为一般的要求 且 NET Framework 提供了灵活的支持 一般而言 N Tier应用程序亩闹好有如下几个层 表示层 业务逻辑层 数据访问层 数据库层 每一层均完成特定的任务 本篇文章中介绍的架构和经典的N Tier相似 不过数据库层替换新的DataLinq 层 使用LINQ to SQL 完成数据操作
图 基于LINQ to SQL的弯告N Tier架构
架构思考
如果你有大型ASP NET项目的经历 你可能会注意到更多的时间花在写组件代码 而不是Web页面代码 有时 组件的设计和管理成为一个费时的过程 你可能正迅铅遇到架构方面的问题 寻找最好的方式来设计Web应用程序
我写这篇文章的想法是介绍一个好的设计模式 并不是得到一个结论或者声明这是一个最好的N Tier应用程序的设计模式 因为对于架构设计 每一个开发人员总是有自己的观点 所以任何合适的架构阐述都是有争议的 然而 如图 所示 分离不同的代码到不同的层总是一个好的实践 按这样组织代码 可以更方便地维护和扩展应用程序
在图 中 你可以看到业务组件分割到不同的层 组织代码最好的方法是为每一个业务组件创建不同的类库(Class Library) Visual Studio允许在同一个Solution中创建多个项目 因此 我们可以在同一个Solution中加入ASP NET 应用程序和类库Class Library项目 当你在编译Solution时 每一个项目都会生成在bin目录下生成一个assembly程序集文件 方法 我们可以手动复制 DLL文件到应用程序的bin目录 方法 增加项目引用 当你编译Solution时 第二种方法可以自动更新应用程序bin目录的程序集文件 通过这种方式组织代码 可以更容易修改/更新项目的特定代码 也容易从不同的Server上迁移代码 我不想深入探讨架构 这里我通过截屏来解释如何实现
假定你已经具备经典 层架构应用程序的设计经验 我告诉你如何建立层与层之间的引用关系 接着你可以自己建立项目引用 图 上的箭头符号说明了不同层之间的交互 说明如下
( ) 数据访问层引用Data Linq 层( 开源小组注 原文说还需要引用业务外观(Business Facade)层 原文有误)
( ) 业务外观(Business Facade)层引用Data Linq 层和数据访问层 因为业务外观层使用Data Linq层的业务实体来创建表实体(后面进行详细讨论) 同时调用数据访问层的方法
lishixin/Article/program/net/201311/12345
5. 如何对网站进行SQL注入
首先你要了解什么是SQL注入漏洞,SQL注入漏洞就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
简单来说,网站一般都是由web应用程序,数据库,服务器等组成的,网站的所有用户数据,密码表单等等都是保存在数据库当中的,数据库的内容按到常理来说是只能在服务器内部进行查询,当然,但是,开发人员对客户端用户向客户端提交的参数没有进行过滤,那么,黑客就可以从客户端【浏览器,等等,详细可以学习http协议】向服务器提交查询数据库的SQL语句,如果提交的语句成功的被服务器给接收到并且执行么,那么黑客岂不是想怎么查询数据库里面的内容就怎么查询,不是么?那些管理账号密码,会员数据不是分分钟就到手了?SQL注入漏洞危害是非常大的。
当然,这种漏洞是根据提交参数没过滤而产生的,那么除了浏览器的get提交参数,http协议中还有,post提交,cookie提交,等等。注入漏洞不是网上那些所谓的黑阔,用什么啊D,明小子之类的乱检测一气而找出来的,如果楼主想研究这个漏洞的产生,原理,利用和防御,是需要进行代码审计,SQL注入语句基础,等等。
现在一般常用的工具:SQLmap【这是一款神器,现在是公认最强大的开源注入工具】
建议楼主去看几本书:《SQL注入天书》《SQL注入漏洞的产生与防御》
这个漏洞的利用不是几句话就能说清楚的,详细的可以追问,纯手工打字,望楼主采纳。
6. 怎么给SQL SERVER做一个系统的WEB界面
根据点击不同的按钮执行相应的操作就行了啊。
例如:点击查询按钮就操作数据库执行一条查询命令(也就是查询语句),然后将查询到的结果显示在页面就行了。如果这个项目比较大的话,建议用分层做。
其实web项目与窗体应用程序项目差别不大,但是连接sql server数据库连接语句不同,也没有控件可以随便拖,其它的增删改查操作都差不多