java sqlserver_JAVA链接SQLServer

最近逐渐在往Java方向转,利用工作之余学习一些Java的基础知识,因为之前的.Net项目基本都是使用的SQLServer数据库,所以今天就写一下Java连接SqlServer数据库的例子,以便以后能够更加快速的学习和上手,话不多说 直接上代码:

packagecom.mingqi.test;importcom.microsoft.sqlserver.jdbc.SQLServerDriver;import java.sql.*;public classJdbcForSqlServer {public static void main(String[] args) throwsSQLException {

Connection connection=null;

PreparedStatement preparedStatement=null;

ResultSet resultSet=null;try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

connection= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=test","sa","123sa");

String sql="select * from Users where name=?";

preparedStatement=connection.prepareStatement(sql);

preparedStatement.setString(1,"毛明明");

resultSet=preparedStatement.executeQuery();while(resultSet.next())

{

System.out.println(resultSet.getString("ID")+resultSet.getString("Name"));

}

}catch(ClassNotFoundException e) {

e.printStackTrace();

}catch(SQLException e) {

e.printStackTrace();

}finally{if(resultSet!=null)

{try{

resultSet.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if(preparedStatement!=null)

{try{

preparedStatement.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if(connection!=null)

{try{

connection.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

}

运行结果如下:

84711084e3fd1ea97087b60d146a3bb5.png

这是用JDBC连接的数据库,该方式存在的问题主要有:

1、数据库连接的创建、释放频繁造成资源浪费从而影响系统性能,如果使用数据库连接池可以解决此问题

2、SQL语句在代码中硬编码,造成代码不易维护,实际应用SQL变化的可能性比较大,SQL变动需要改变Java代码

3、使用prepareStatement占位符传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改SQL还要修改代码系统不易维护

4、对结果集解析存在硬编码(查询列名),SQL变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便

所以接下来回接触Mymatis框架,来解决这些问题

mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。 采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值