java调用sql server的存储过程(dbutils)

来源:互联网 发布:ubuntu删除图形界面 编辑:程序博客网 时间:2024/06/14 09:16

一般我们在写接口或者后台的时候,java用的是springmvc框架,而连接数据库则用到的是jdbc(原始的),为了更加方便,通过配置文件的方式连接数据库(sql server2008),通过两天的学习,和自己的揣摩,终于弄出来了,为了给一些需要的又刚好没有找到这个方法的程序员提供一个参考,也算是献丑了(捂脸)。

废话不多讲,直接上代码,本人用的是springmvc框架,连接数据库用的是dbutils类,调用存储过程,

第一步:连接数据库。


driverClassName=net.sourceforge.jtds.jdbc.Driverurl=jdbc:jtds:sqlserver://192.168.0.1:1433;DatabaseName=数据库的名称username=用户名password=密码


spring的配置文件为

<!-- 配置数据源 --><bean id="dataSource" name="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${driverClassName}"></property><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></bean>
这样一来,java连接sql server的连接就通了,是不是很简单,哈哈

第二步:创建一个存储过程(带参数的,不带参数的更简单,)

ALTER PROCEDURE [dbo].[getAllUserNote] -- Add the parameters for the stored procedure here@DataFlag bit=trueASBEGIN-- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNT ON;    -- Insert statements for procedure hereSELECT  * from TC2_UserNote  where  DataFlag=@DataFlag ;END
TC2_UserNote表的详情如下
         [ID] [bigint] IDENTITY(1,1) NOT NULL,[DataFlag] [bit] NOT NULL,[Remark] [nvarchar](200) NULL,

有三个字段,分别是ID,
DataFlag,和Remark,举个例子,实际情况根据自身的条件设置,可以也自己写个demo
第三步,java调存储过程,重点哦,用到的是dbutils中的execute这个方法,

public static List<UserNote> queryUserNoteByID(boolean DataFlag) throws SQLException {Connection conn = null;try {conn = JdbcUtil.getConnection();QueryRunner qr = new QueryRunner();String sql = "{call getAllUserNote(?)}";List<List<UserNote>> userNote = qr.execute(conn, sql, new BeanListHandler<UserNote>(UserNote.class), DataFlag);return userNote.get(0);} catch (SQLException e) {e.printStackTrace();}return null;}

其中,UserNote是一个类,和数据库的字段是对应,这样用他来接收查询出来的数据列表。

第四步,测试

@Testpublic void Test() {//查询操作try {List<UserNote> userNotes=UserNoteDao.queryUserNoteByID(true);System.out.println(userNotes.size());//List<UserNote> uList = userNotes.get(0);for (UserNote userNote : userNotes) {System.out.println(userNote.getID());}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}
UserNoteDao是第三步中的类名,用了static方法,这里为了测试用,取数据表中的ID值,如下
22CA4275-7A8B-4A46-A1AC-0C9917ECC9839FCA4275-7A8B-4A46-A1AC-0C9917ECC983E0569587-C88B-461F-86F8-1620141F5FC39831B13E-259E-46F9-9556-17516F861209F3CCFBD4-DA4F-4E87-B313-1B223FF90D2B5D611F04-8CD0-4EA9-8B36-379278CA38EBFA6F18F9-1E6D-4C9F-94BC-BBFCA079726FAEC9895E-D9BE-4359-8DEB-BC308D0CCB72F3070F26-E381-4361-8F60-CB79197A0D0FB6D061E3-9312-49E2-8F8E-CD4144CAD8805E78E2B9-630A-49DC-B98E-FA1C31F42021
对比数据表中 的数据,


大功告成,这样做的时候非常方便,同样的插入和添加操作也是一样,如有疑问,肯请指出~


原创粉丝点击